From 39380e8e8bdb3b9e29569a263277c9c3112b44ac Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Thu, 29 Oct 2020 15:09:07 -0700 Subject: [PATCH] Combine the light and dark Guide and About pages. https://redmine.stoutner.com/issues/368 --- .idea/compiler.xml | 8 +- .idea/dictionaries/soren.xml | 2 + .idea/gradle.xml | 1 + .idea/misc.xml | 2 +- .idea/modules.xml | 4 +- app/build.gradle | 4 +- ...ions_light.html => about_permissions.html} | 5 +- .../assets/de/about_permissions_dark.html | 77 - ...y_light.html => about_privacy_policy.html} | 7 +- .../assets/de/about_privacy_policy_dark.html | 104 -- ...ions_light.html => about_permissions.html} | 5 +- .../assets/en/about_permissions_dark.html | 69 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/en/about_privacy_policy_light.html | 103 -- ...ions_light.html => about_permissions.html} | 5 +- .../assets/es/about_permissions_dark.html | 72 - ...y_light.html => about_privacy_policy.html} | 9 +- .../assets/es/about_privacy_policy_dark.html | 105 -- ...ions_light.html => about_permissions.html} | 5 +- .../assets/fr/about_permissions_dark.html | 73 - ...y_light.html => about_privacy_policy.html} | 7 +- .../assets/fr/about_privacy_policy_dark.html | 105 -- ...sions_dark.html => about_permissions.html} | 5 +- .../assets/it/about_permissions_light.html | 72 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/it/about_privacy_policy_light.html | 105 -- ...sions_dark.html => about_permissions.html} | 5 +- .../assets/ru/about_permissions_light.html | 70 - ...cy_dark.html => about_privacy_policy.html} | 7 +- .../assets/ru/about_privacy_policy_light.html | 103 -- ...sions_dark.html => about_permissions.html} | 5 +- .../assets/tr/about_permissions_light.html | 71 - ...y_light.html => about_privacy_policy.html} | 7 +- .../assets/tr/about_privacy_policy_dark.html | 103 -- app/src/main/assets/css/dark_theme.css | 88 - app/src/main/assets/css/light_theme.css | 77 - app/src/main/assets/css/theme.css | 142 ++ ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/de/about_changelog_light.html | 694 ------- ...ors_light.html => about_contributors.html} | 5 +- .../assets/de/about_contributors_dark.html | 53 - ...icenses_light.html => about_licenses.html} | 139 +- .../main/assets/de/about_licenses_dark.html | 1068 ----------- ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/de/about_links_dark.html | 48 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/de/about_permissions_light.html | 50 - ...y_light.html => about_privacy_policy.html} | 9 +- .../assets/de/about_privacy_policy_dark.html | 91 - ..._light.html => guide_domain_settings.html} | 13 +- .../assets/de/guide_domain_settings_dark.html | 41 - ...cript_light.html => guide_javascript.html} | 17 +- .../main/assets/de/guide_javascript_dark.html | 60 - ...ge_light.html => guide_local_storage.html} | 17 +- .../assets/de/guide_local_storage_dark.html | 94 - ...verview_light.html => guide_overview.html} | 11 +- .../main/assets/de/guide_overview_dark.html | 51 - ..._proxies_light.html => guide_proxies.html} | 15 +- .../main/assets/de/guide_proxies_dark.html | 88 - ...equests_light.html => guide_requests.html} | 11 +- .../main/assets/de/guide_requests_dark.html | 84 - ...light.html => guide_ssl_certificates.html} | 13 +- .../de/guide_ssl_certificates_dark.html | 56 - ...ids_light.html => guide_tracking_ids.html} | 11 +- .../assets/de/guide_tracking_ids_dark.html | 46 - ...agent_light.html => guide_user_agent.html} | 11 +- .../main/assets/de/guide_user_agent_dark.html | 71 - ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/en/about_changelog_light.html | 681 ------- ...tors_dark.html => about_contributors.html} | 5 +- .../assets/en/about_contributors_light.html | 49 - ...icenses_light.html => about_licenses.html} | 145 +- .../main/assets/en/about_licenses_dark.html | 1062 ----------- ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/en/about_links_dark.html | 44 - ...ions_light.html => about_permissions.html} | 7 +- .../assets/en/about_permissions_dark.html | 44 - ...y_light.html => about_privacy_policy.html} | 9 +- .../assets/en/about_privacy_policy_dark.html | 90 - ...s_dark.html => guide_domain_settings.html} | 13 +- .../en/guide_domain_settings_light.html | 39 - ...script_dark.html => guide_javascript.html} | 17 +- .../assets/en/guide_javascript_light.html | 58 - ...ge_light.html => guide_local_storage.html} | 17 +- .../assets/en/guide_local_storage_dark.html | 88 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/en/guide_overview_light.html | 46 - ...e_proxies_dark.html => guide_proxies.html} | 15 +- .../main/assets/en/guide_proxies_light.html | 77 - ...requests_dark.html => guide_requests.html} | 11 +- .../main/assets/en/guide_requests_light.html | 80 - ..._dark.html => guide_ssl_certificates.html} | 13 +- .../en/guide_ssl_certificates_light.html | 53 - ..._ids_dark.html => guide_tracking_ids.html} | 11 +- .../assets/en/guide_tracking_ids_light.html | 40 - ...agent_light.html => guide_user_agent.html} | 7 +- .../main/assets/en/guide_user_agent_dark.html | 60 - ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/es/about_changelog_light.html | 690 ------- ...tors_dark.html => about_contributors.html} | 5 +- .../assets/es/about_contributors_light.html | 51 - ...icenses_light.html => about_licenses.html} | 139 +- .../main/assets/es/about_licenses_dark.html | 1065 ----------- ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/es/about_links_dark.html | 46 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/es/about_permissions_light.html | 47 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/es/about_privacy_policy_light.html | 91 - ...s_dark.html => guide_domain_settings.html} | 13 +- .../es/guide_domain_settings_light.html | 41 - ...script_dark.html => guide_javascript.html} | 17 +- .../assets/es/guide_javascript_light.html | 58 - ...age_dark.html => guide_local_storage.html} | 17 +- .../assets/es/guide_local_storage_light.html | 93 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/es/guide_overview_light.html | 50 - ...e_proxies_dark.html => guide_proxies.html} | 15 +- .../main/assets/es/guide_proxies_light.html | 86 - ...requests_dark.html => guide_requests.html} | 11 +- .../main/assets/es/guide_requests_light.html | 84 - ..._dark.html => guide_ssl_certificates.html} | 13 +- .../es/guide_ssl_certificates_light.html | 56 - ..._ids_dark.html => guide_tracking_ids.html} | 11 +- .../assets/es/guide_tracking_ids_light.html | 43 - ..._agent_dark.html => guide_user_agent.html} | 11 +- .../assets/es/guide_user_agent_light.html | 65 - ...ngelog_light.html => about_changelog.html} | 5 +- .../main/assets/fr/about_changelog_dark.html | 707 ------- ...tors_dark.html => about_contributors.html} | 7 +- .../assets/fr/about_contributors_light.html | 51 - ...licenses_dark.html => about_licenses.html} | 139 +- .../main/assets/fr/about_licenses_light.html | 1071 ----------- ...bout_links_light.html => about_links.html} | 19 +- app/src/main/assets/fr/about_links_dark.html | 46 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/fr/about_permissions_light.html | 48 - ...y_light.html => about_privacy_policy.html} | 9 +- .../assets/fr/about_privacy_policy_dark.html | 92 - ..._light.html => guide_domain_settings.html} | 15 +- .../assets/fr/guide_domain_settings_dark.html | 41 - ...script_dark.html => guide_javascript.html} | 19 +- .../assets/fr/guide_javascript_light.html | 62 - ...age_dark.html => guide_local_storage.html} | 17 +- .../assets/fr/guide_local_storage_light.html | 96 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/fr/guide_overview_light.html | 49 - ...e_proxies_dark.html => guide_proxies.html} | 15 +- .../main/assets/fr/guide_proxies_light.html | 88 - ...requests_dark.html => guide_requests.html} | 12 +- .../main/assets/fr/guide_requests_light.html | 84 - ..._dark.html => guide_ssl_certificates.html} | 13 +- .../fr/guide_ssl_certificates_light.html | 55 - ..._ids_dark.html => guide_tracking_ids.html} | 11 +- .../assets/fr/guide_tracking_ids_light.html | 43 - ..._agent_dark.html => guide_user_agent.html} | 11 +- .../assets/fr/guide_user_agent_light.html | 65 - ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/it/about_changelog_light.html | 695 ------- ...tors_dark.html => about_contributors.html} | 5 +- .../assets/it/about_contributors_light.html | 51 - ...icenses_light.html => about_licenses.html} | 139 +- .../main/assets/it/about_licenses_dark.html | 1162 ------------ ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/it/about_links_dark.html | 45 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/it/about_permissions_light.html | 48 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/it/about_privacy_policy_light.html | 92 - ..._light.html => guide_domain_settings.html} | 13 +- .../assets/it/guide_domain_settings_dark.html | 41 - ...script_dark.html => guide_javascript.html} | 17 +- .../assets/it/guide_javascript_light.html | 61 - ...age_dark.html => guide_local_storage.html} | 17 +- .../assets/it/guide_local_storage_light.html | 95 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/it/guide_overview_light.html | 48 - ...e_proxies_dark.html => guide_proxies.html} | 13 +- .../main/assets/it/guide_proxies_light.html | 82 - ...equests_light.html => guide_requests.html} | 11 +- .../main/assets/it/guide_requests_dark.html | 85 - ..._dark.html => guide_ssl_certificates.html} | 13 +- .../it/guide_ssl_certificates_light.html | 57 - ...ids_light.html => guide_tracking_ids.html} | 11 +- .../assets/it/guide_tracking_ids_dark.html | 43 - ..._agent_dark.html => guide_user_agent.html} | 11 +- .../assets/it/guide_user_agent_light.html | 63 - ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/ru/about_changelog_light.html | 684 ------- ...tors_dark.html => about_contributors.html} | 5 +- .../assets/ru/about_contributors_light.html | 49 - ...icenses_light.html => about_licenses.html} | 139 +- .../main/assets/ru/about_licenses_dark.html | 1064 ----------- ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/ru/about_links_dark.html | 44 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/ru/about_permissions_light.html | 45 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/ru/about_privacy_policy_light.html | 90 - ...s_dark.html => guide_domain_settings.html} | 13 +- .../ru/guide_domain_settings_light.html | 38 - ...script_dark.html => guide_javascript.html} | 17 +- .../assets/ru/guide_javascript_light.html | 58 - ...age_dark.html => guide_local_storage.html} | 17 +- .../assets/ru/guide_local_storage_light.html | 91 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/ru/guide_overview_light.html | 46 - ...e_proxies_dark.html => guide_proxies.html} | 15 +- .../main/assets/ru/guide_proxies_light.html | 81 - ...requests_dark.html => guide_requests.html} | 11 +- .../main/assets/ru/guide_requests_light.html | 81 - ..._dark.html => guide_ssl_certificates.html} | 14 +- .../ru/guide_ssl_certificates_light.html | 53 - ..._ids_dark.html => guide_tracking_ids.html} | 11 +- .../assets/ru/guide_tracking_ids_light.html | 41 - ...agent_light.html => guide_user_agent.html} | 11 +- .../main/assets/ru/guide_user_agent_dark.html | 62 - app/src/main/assets/shared_images/add.svg | 28 + .../main/assets/shared_images/add_dark.png | Bin 484 -> 0 bytes .../main/assets/shared_images/add_light.png | Bin 466 -> 0 bytes .../main/assets/shared_images/arrow_back.svg | 28 + .../assets/shared_images/arrow_back_dark.png | Bin 662 -> 0 bytes .../assets/shared_images/arrow_back_light.png | Bin 640 -> 0 bytes .../assets/shared_images/arrow_forward.svg | 28 + .../shared_images/arrow_forward_dark.png | Bin 672 -> 0 bytes .../shared_images/arrow_forward_light.png | Bin 630 -> 0 bytes .../main/assets/shared_images/bookmarks.svg | 28 + .../assets/shared_images/bookmarks_dark.png | Bin 1325 -> 0 bytes .../assets/shared_images/bookmarks_light.png | Bin 1105 -> 0 bytes .../main/assets/shared_images/bug_report.svg | 28 + .../shared_images/bug_report_blue_dark.png | Bin 2064 -> 0 bytes .../shared_images/bug_report_blue_light.png | Bin 2085 -> 0 bytes .../assets/shared_images/bug_report_dark.png | Bin 1513 -> 0 bytes .../assets/shared_images/bug_report_light.png | Bin 1292 -> 0 bytes .../assets/shared_images/camera_enhance.svg | 31 + .../shared_images/camera_enhance_dark.png | Bin 2553 -> 0 bytes .../shared_images/camera_enhance_light.png | Bin 2234 -> 0 bytes .../shared_images/chrome_reader_mode.svg | 28 + .../chrome_reader_mode_blue_dark.png | Bin 1131 -> 0 bytes .../chrome_reader_mode_blue_guide_dark.png | Bin 1130 -> 0 bytes .../chrome_reader_mode_blue_light.png | Bin 1144 -> 0 bytes .../shared_images/chrome_reader_mode_dark.png | Bin 976 -> 0 bytes .../chrome_reader_mode_light.png | Bin 887 -> 0 bytes .../assets/shared_images/clear_and_exit.svg | 33 + .../shared_images/clear_and_exit_dark.png | Bin 1358 -> 0 bytes .../shared_images/clear_and_exit_light.png | Bin 1251 -> 0 bytes app/src/main/assets/shared_images/close.svg | 28 + .../main/assets/shared_images/close_dark.png | Bin 857 -> 0 bytes .../main/assets/shared_images/close_light.png | Bin 799 -> 0 bytes app/src/main/assets/shared_images/cookie.svg | 29 + .../assets/shared_images/cookie_blue_dark.png | Bin 3715 -> 0 bytes .../shared_images/cookie_blue_light.png | Bin 3625 -> 0 bytes .../main/assets/shared_images/cookie_dark.png | Bin 2195 -> 0 bytes .../assets/shared_images/cookie_light.png | Bin 2366 -> 0 bytes .../assets/shared_images/create_bookmark.svg | 28 + .../shared_images/create_bookmark_dark.png | Bin 1043 -> 0 bytes .../shared_images/create_bookmark_light.png | Bin 928 -> 0 bytes .../assets/shared_images/create_folder.svg | 28 + .../shared_images/create_folder_dark.png | Bin 1035 -> 0 bytes .../shared_images/create_folder_light.png | Bin 915 -> 0 bytes app/src/main/assets/shared_images/delete.svg | 28 + .../main/assets/shared_images/delete_dark.png | Bin 759 -> 0 bytes .../assets/shared_images/delete_forever.svg | 28 + .../shared_images/delete_forever_dark.png | Bin 1428 -> 0 bytes .../shared_images/delete_forever_light.png | Bin 1153 -> 0 bytes .../assets/shared_images/delete_light.png | Bin 680 -> 0 bytes .../assets/shared_images/devices_other.svg | 28 + .../shared_images/devices_other_blue_dark.png | Bin 1886 -> 0 bytes .../devices_other_blue_light.png | Bin 1862 -> 0 bytes .../shared_images/devices_other_dark.png | Bin 1524 -> 0 bytes .../shared_images/devices_other_light.png | Bin 1385 -> 0 bytes app/src/main/assets/shared_images/dns.svg | 28 + .../assets/shared_images/dns_blue_dark.png | Bin 1897 -> 0 bytes .../assets/shared_images/dns_blue_light.png | Bin 1883 -> 0 bytes .../main/assets/shared_images/dns_dark.png | Bin 1505 -> 0 bytes .../main/assets/shared_images/dns_light.png | Bin 1356 -> 0 bytes .../main/assets/shared_images/donut_small.svg | 28 + .../assets/shared_images/donut_small_dark.png | Bin 2527 -> 0 bytes .../shared_images/donut_small_light.png | Bin 2184 -> 0 bytes app/src/main/assets/shared_images/edit.svg | 28 + .../main/assets/shared_images/edit_dark.png | Bin 776 -> 0 bytes .../main/assets/shared_images/edit_light.png | Bin 826 -> 0 bytes .../main/assets/shared_images/expand_less.svg | 28 + .../assets/shared_images/expand_less_dark.png | Bin 614 -> 0 bytes .../shared_images/expand_less_light.png | Bin 604 -> 0 bytes .../main/assets/shared_images/expand_more.svg | 28 + .../assets/shared_images/expand_more_dark.png | Bin 587 -> 0 bytes .../shared_images/expand_more_light.png | Bin 586 -> 0 bytes .../main/assets/shared_images/file_copy.svg | 28 + .../assets/shared_images/file_copy_dark.png | Bin 1220 -> 0 bytes .../assets/shared_images/file_copy_light.png | Bin 1121 -> 0 bytes .../assets/shared_images/file_download.svg | 28 + .../shared_images/file_download_dark.png | Bin 661 -> 0 bytes .../shared_images/file_download_light.png | Bin 559 -> 0 bytes .../assets/shared_images/find_in_page.svg | 28 + .../shared_images/find_in_page_dark.png | Bin 2447 -> 0 bytes .../shared_images/find_in_page_light.png | Bin 2115 -> 0 bytes app/src/main/assets/shared_images/folder.svg | 28 + .../main/assets/shared_images/folder_dark.png | Bin 934 -> 0 bytes .../assets/shared_images/folder_light.png | Bin 811 -> 0 bytes app/src/main/assets/shared_images/home.svg | 28 + .../main/assets/shared_images/home_dark.png | Bin 1035 -> 0 bytes .../main/assets/shared_images/home_light.png | Bin 825 -> 0 bytes app/src/main/assets/shared_images/image.svg | 28 + .../main/assets/shared_images/image_dark.png | Bin 1486 -> 0 bytes .../main/assets/shared_images/image_light.png | Bin 1288 -> 0 bytes .../assets/shared_images/import_contacts.svg | 28 + .../shared_images/import_contacts_dark.png | Bin 1696 -> 0 bytes .../shared_images/import_contacts_light.png | Bin 1533 -> 0 bytes .../assets/shared_images/import_export.svg | 28 + .../shared_images/import_export_dark.png | Bin 759 -> 0 bytes .../shared_images/import_export_light.png | Bin 736 -> 0 bytes .../shared_images/important_devices.svg | 28 + .../shared_images/important_devices_dark.png | Bin 1806 -> 0 bytes .../shared_images/important_devices_light.png | Bin 1592 -> 0 bytes .../assets/shared_images/info_outline.svg | 28 + .../shared_images/info_outline_dark.png | Bin 2971 -> 0 bytes .../shared_images/info_outline_light.png | Bin 2670 -> 0 bytes .../shared_images/javascript_enabled.png | Bin 6405 -> 0 bytes .../shared_images/javascript_enabled.svg | 45 + .../main/assets/shared_images/language.svg | 28 + .../shared_images/language_blue_dark.png | Bin 5198 -> 0 bytes .../shared_images/language_blue_light.png | Bin 5136 -> 0 bytes .../assets/shared_images/language_dark.png | Bin 3401 -> 0 bytes .../assets/shared_images/language_light.png | Bin 3102 -> 0 bytes .../main/assets/shared_images/link_off.svg | 28 + .../shared_images/link_off_blue_dark.png | Bin 3287 -> 0 bytes .../shared_images/link_off_blue_light.png | Bin 3211 -> 0 bytes .../assets/shared_images/link_off_dark.png | Bin 2150 -> 0 bytes .../assets/shared_images/link_off_light.png | Bin 1907 -> 0 bytes app/src/main/assets/shared_images/list.svg | 28 + .../main/assets/shared_images/list_dark.png | Bin 424 -> 0 bytes .../main/assets/shared_images/list_light.png | Bin 403 -> 0 bytes .../assets/shared_images/local_activity.svg | 28 + .../local_activity_blue_dark.png | Bin 2891 -> 0 bytes .../local_activity_blue_light.png | Bin 2878 -> 0 bytes .../shared_images/local_activity_dark.png | Bin 2183 -> 0 bytes .../shared_images/local_activity_light.png | Bin 1889 -> 0 bytes .../assets/shared_images/location_off.svg | 28 + .../shared_images/location_off_blue_dark.png | Bin 3280 -> 0 bytes .../shared_images/location_off_blue_light.png | Bin 3342 -> 0 bytes .../shared_images/location_off_dark.png | Bin 2333 -> 0 bytes .../shared_images/location_off_light.png | Bin 1880 -> 0 bytes app/src/main/assets/shared_images/lock.svg | 28 + .../main/assets/shared_images/lock_dark.png | Bin 1848 -> 0 bytes .../main/assets/shared_images/lock_light.png | Bin 1646 -> 0 bytes app/src/main/assets/shared_images/map.svg | 28 + .../assets/shared_images/map_blue_dark.png | Bin 2186 -> 0 bytes .../assets/shared_images/map_blue_light.png | Bin 2172 -> 0 bytes .../main/assets/shared_images/map_dark.png | Bin 1617 -> 0 bytes .../main/assets/shared_images/map_light.png | Bin 1416 -> 0 bytes app/src/main/assets/shared_images/more.svg | 28 + .../assets/shared_images/more_blue_dark.png | Bin 2304 -> 0 bytes .../assets/shared_images/more_blue_light.png | Bin 2320 -> 0 bytes .../main/assets/shared_images/more_dark.png | Bin 1806 -> 0 bytes .../main/assets/shared_images/more_light.png | Bin 1625 -> 0 bytes .../assets/shared_images/move_to_folder.svg | 28 + .../shared_images/move_to_folder_dark.png | Bin 1386 -> 0 bytes .../shared_images/move_to_folder_light.png | Bin 1261 -> 0 bytes .../assets/shared_images/new_releases.svg | 28 + .../shared_images/new_releases_dark.png | Bin 2322 -> 0 bytes .../shared_images/new_releases_light.png | Bin 2020 -> 0 bytes .../main/assets/shared_images/night_mode.svg | 28 + .../assets/shared_images/night_mode_dark.png | Bin 1383 -> 0 bytes .../assets/shared_images/night_mode_light.png | Bin 1280 -> 0 bytes .../assets/shared_images/open_in_browser.svg | 28 + .../open_in_browser_blue_dark.png | Bin 1304 -> 0 bytes .../open_in_browser_blue_light.png | Bin 1289 -> 0 bytes .../shared_images/open_in_browser_dark.png | Bin 1118 -> 0 bytes .../shared_images/open_in_browser_light.png | Bin 1031 -> 0 bytes app/src/main/assets/shared_images/payment.svg | 28 + .../assets/shared_images/payment_dark.png | Bin 922 -> 0 bytes .../assets/shared_images/payment_light.png | Bin 821 -> 0 bytes .../assets/shared_images/privacy_browser.png | Bin 6547 -> 0 bytes .../assets/shared_images/privacy_browser.svg | 45 + .../shared_images/privacy_browser_free.png | Bin 6340 -> 0 bytes .../shared_images/privacy_browser_free.svg | 63 + .../assets/shared_images/question_answer.svg | 28 + .../question_answer_blue_dark.png | Bin 1101 -> 0 bytes .../question_answer_blue_light.png | Bin 1105 -> 0 bytes .../shared_images/question_answer_dark.png | Bin 969 -> 0 bytes .../shared_images/question_answer_light.png | Bin 909 -> 0 bytes app/src/main/assets/shared_images/refresh.svg | 28 + .../assets/shared_images/refresh_dark.png | Bin 2205 -> 0 bytes .../assets/shared_images/refresh_light.png | Bin 1992 -> 0 bytes app/src/main/assets/shared_images/save.svg | 28 + .../main/assets/shared_images/save_dark.png | Bin 1432 -> 0 bytes .../main/assets/shared_images/save_light.png | Bin 1245 -> 0 bytes app/src/main/assets/shared_images/search.svg | 28 + .../main/assets/shared_images/search_dark.png | Bin 2033 -> 0 bytes .../assets/shared_images/search_light.png | Bin 1893 -> 0 bytes .../main/assets/shared_images/select_all.svg | 28 + .../assets/shared_images/select_all_dark.png | Bin 1082 -> 0 bytes .../assets/shared_images/select_all_light.png | Bin 973 -> 0 bytes .../main/assets/shared_images/settings.svg | 28 + .../assets/shared_images/settings_dark.png | Bin 2452 -> 0 bytes .../assets/shared_images/settings_light.png | Bin 2147 -> 0 bytes .../shared_images/settings_overscan.svg | 28 + .../shared_images/settings_overscan_dark.png | Bin 1796 -> 0 bytes .../shared_images/settings_overscan_light.png | Bin 1612 -> 0 bytes app/src/main/assets/shared_images/share.svg | 29 + .../main/assets/shared_images/share_day.png | Bin 1876 -> 0 bytes .../main/assets/shared_images/share_night.png | Bin 2058 -> 0 bytes .../main/assets/shared_images/smartphone.svg | 28 + .../assets/shared_images/smartphone_dark.png | Bin 950 -> 0 bytes .../assets/shared_images/smartphone_light.png | Bin 864 -> 0 bytes app/src/main/assets/shared_images/sort.svg | 28 + .../main/assets/shared_images/sort_dark.png | Bin 355 -> 0 bytes .../main/assets/shared_images/sort_light.png | Bin 347 -> 0 bytes .../assets/shared_images/sort_selected.svg | 60 + .../shared_images/sort_selected_dark.png | Bin 954 -> 0 bytes .../shared_images/sort_selected_light.png | Bin 926 -> 0 bytes app/src/main/assets/shared_images/style.svg | 28 + .../main/assets/shared_images/style_dark.png | Bin 2705 -> 0 bytes .../main/assets/shared_images/style_light.png | Bin 2395 -> 0 bytes .../main/assets/shared_images/subtitles.svg | 28 + .../shared_images/subtitles_blue_dark.png | Bin 1084 -> 0 bytes .../shared_images/subtitles_blue_light.png | Bin 1079 -> 0 bytes .../assets/shared_images/subtitles_dark.png | Bin 930 -> 0 bytes .../assets/shared_images/subtitles_light.png | Bin 834 -> 0 bytes app/src/main/assets/shared_images/tab.svg | 28 + .../main/assets/shared_images/tab_dark.png | Bin 928 -> 0 bytes .../main/assets/shared_images/tab_light.png | Bin 796 -> 0 bytes .../main/assets/shared_images/text_fields.svg | 28 + .../assets/shared_images/text_fields_dark.png | Bin 516 -> 0 bytes .../shared_images/text_fields_light.png | Bin 499 -> 0 bytes .../assets/shared_images/thumbs_up_down.svg | 28 + .../shared_images/thumbs_up_down_dark.png | Bin 1763 -> 0 bytes .../shared_images/thumbs_up_down_light.png | Bin 1613 -> 0 bytes .../shared_images/vertical_align_bottom.svg | 28 + .../vertical_align_bottom_dark.png | Bin 608 -> 0 bytes .../vertical_align_bottom_light.png | Bin 554 -> 0 bytes .../shared_images/vertical_align_top.svg | 28 + .../shared_images/vertical_align_top_dark.png | Bin 602 -> 0 bytes .../vertical_align_top_light.png | Bin 558 -> 0 bytes .../assets/shared_images/visibility_off.svg | 28 + .../visibility_off_blue_dark.png | Bin 4065 -> 0 bytes .../visibility_off_blue_light.png | Bin 4235 -> 0 bytes .../shared_images/visibility_off_dark.png | Bin 2748 -> 0 bytes .../shared_images/visibility_off_light.png | Bin 2400 -> 0 bytes app/src/main/assets/shared_images/vpn_key.svg | 28 + .../shared_images/vpn_key_blue_dark.png | Bin 2170 -> 0 bytes .../shared_images/vpn_key_blue_light.png | Bin 2154 -> 0 bytes .../assets/shared_images/vpn_key_dark.png | Bin 1722 -> 0 bytes .../assets/shared_images/vpn_key_light.png | Bin 1453 -> 0 bytes .../main/assets/shared_images/vpn_lock.svg | 28 + .../shared_images/vpn_lock_blue_dark.png | Bin 4405 -> 0 bytes .../shared_images/vpn_lock_blue_light.png | Bin 4351 -> 0 bytes .../assets/shared_images/vpn_lock_dark.png | Bin 3119 -> 0 bytes .../assets/shared_images/vpn_lock_light.png | Bin 2807 -> 0 bytes app/src/main/assets/shared_images/warning.png | Bin 6111 -> 0 bytes app/src/main/assets/shared_images/warning.svg | 45 + app/src/main/assets/shared_images/web.svg | 28 + .../assets/shared_images/web_blue_dark.png | Bin 1140 -> 0 bytes .../assets/shared_images/web_blue_light.png | Bin 1097 -> 0 bytes .../main/assets/shared_images/web_dark.png | Bin 928 -> 0 bytes .../main/assets/shared_images/web_light.png | Bin 837 -> 0 bytes ...angelog_dark.html => about_changelog.html} | 5 +- .../main/assets/tr/about_changelog_light.html | 683 ------- ...tors_dark.html => about_contributors.html} | 5 +- .../assets/tr/about_contributors_light.html | 49 - ...icenses_light.html => about_licenses.html} | 139 +- .../main/assets/tr/about_licenses_dark.html | 1066 ----------- ...bout_links_light.html => about_links.html} | 17 +- app/src/main/assets/tr/about_links_dark.html | 44 - ...sions_dark.html => about_permissions.html} | 7 +- .../assets/tr/about_permissions_light.html | 46 - ...cy_dark.html => about_privacy_policy.html} | 9 +- .../assets/tr/about_privacy_policy_light.html | 90 - ...s_dark.html => guide_domain_settings.html} | 13 +- .../tr/guide_domain_settings_light.html | 39 - ...script_dark.html => guide_javascript.html} | 17 +- .../assets/tr/guide_javascript_light.html | 57 - ...ge_light.html => guide_local_storage.html} | 15 +- .../assets/tr/guide_local_storage_dark.html | 90 - ...overview_dark.html => guide_overview.html} | 11 +- .../main/assets/tr/guide_overview_light.html | 48 - ...e_proxies_dark.html => guide_proxies.html} | 15 +- .../main/assets/tr/guide_proxies_light.html | 77 - ...equests_light.html => guide_requests.html} | 11 +- .../main/assets/tr/guide_requests_dark.html | 82 - ..._dark.html => guide_ssl_certificates.html} | 13 +- .../tr/guide_ssl_certificates_light.html | 53 - ..._ids_dark.html => guide_tracking_ids.html} | 11 +- .../assets/tr/guide_tracking_ids_light.html | 41 - ..._agent_dark.html => guide_user_agent.html} | 11 +- .../assets/tr/guide_user_agent_light.html | 61 - .../activities/LogcatActivity.java | 76 +- .../activities/MainWebViewActivity.java | 1621 ++++++++--------- .../adapters/AboutPagerAdapter.java | 6 +- .../adapters/GuidePagerAdapter.java | 6 +- .../privacybrowser/asynctasks/SaveUrl.java | 28 +- .../dialogs/CreateBookmarkFolderDialog.kt | 1 + .../dialogs/EditBookmarkDatabaseViewDialog.kt | 1 + .../dialogs/EditBookmarkDialog.kt | 1 + .../EditBookmarkFolderDatabaseViewDialog.kt | 1 + .../dialogs/EditBookmarkFolderDialog.kt | 1 + .../privacybrowser/dialogs/FontSizeDialog.kt | 3 +- .../dialogs/HttpAuthenticationDialog.kt | 3 +- .../dialogs/PinnedMismatchDialog.java | 8 +- .../dialogs/SslCertificateErrorDialog.java | 6 +- .../dialogs/ViewSslCertificateDialog.java | 8 +- .../fragments/AboutVersionFragment.java | 107 +- .../fragments/AboutWebViewFragment.java | 166 +- .../fragments/DomainSettingsFragment.java | 34 +- .../fragments/GuideTabFragment.java | 188 -- .../fragments/GuideWebViewFragment.java | 204 +++ .../main/res/drawable/sort_selected_day.xml | 2 +- app/src/main/res/values-night-v23/styles.xml | 4 +- app/src/main/res/values-night-v27/styles.xml | 4 +- app/src/main/res/values-night/colors.xml | 3 + app/src/main/res/values-night/styles.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 5 + app/src/main/res/values/colors.xml | 3 + build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 516 files changed, 4730 insertions(+), 21586 deletions(-) rename app/src/free/assets/de/{about_permissions_light.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/de/about_permissions_dark.html rename app/src/free/assets/de/{about_privacy_policy_light.html => about_privacy_policy.html} (94%) delete mode 100644 app/src/free/assets/de/about_privacy_policy_dark.html rename app/src/free/assets/en/{about_permissions_light.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/en/about_permissions_dark.html rename app/src/free/assets/en/{about_privacy_policy_dark.html => about_privacy_policy.html} (93%) delete mode 100644 app/src/free/assets/en/about_privacy_policy_light.html rename app/src/free/assets/es/{about_permissions_light.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/es/about_permissions_dark.html rename app/src/free/assets/es/{about_privacy_policy_light.html => about_privacy_policy.html} (94%) delete mode 100644 app/src/free/assets/es/about_privacy_policy_dark.html rename app/src/free/assets/fr/{about_permissions_light.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/fr/about_permissions_dark.html rename app/src/free/assets/fr/{about_privacy_policy_light.html => about_privacy_policy.html} (95%) delete mode 100644 app/src/free/assets/fr/about_privacy_policy_dark.html rename app/src/free/assets/it/{about_permissions_dark.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/it/about_permissions_light.html rename app/src/free/assets/it/{about_privacy_policy_dark.html => about_privacy_policy.html} (94%) delete mode 100644 app/src/free/assets/it/about_privacy_policy_light.html rename app/src/free/assets/ru/{about_permissions_dark.html => about_permissions.html} (96%) delete mode 100644 app/src/free/assets/ru/about_permissions_light.html rename app/src/free/assets/ru/{about_privacy_policy_dark.html => about_privacy_policy.html} (95%) delete mode 100644 app/src/free/assets/ru/about_privacy_policy_light.html rename app/src/free/assets/tr/{about_permissions_dark.html => about_permissions.html} (95%) delete mode 100644 app/src/free/assets/tr/about_permissions_light.html rename app/src/free/assets/tr/{about_privacy_policy_light.html => about_privacy_policy.html} (95%) delete mode 100644 app/src/free/assets/tr/about_privacy_policy_dark.html delete mode 100644 app/src/main/assets/css/dark_theme.css delete mode 100644 app/src/main/assets/css/light_theme.css create mode 100644 app/src/main/assets/css/theme.css rename app/src/main/assets/de/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/de/about_changelog_light.html rename app/src/main/assets/de/{about_contributors_light.html => about_contributors.html} (90%) delete mode 100644 app/src/main/assets/de/about_contributors_dark.html rename app/src/main/assets/de/{about_licenses_light.html => about_licenses.html} (89%) delete mode 100644 app/src/main/assets/de/about_licenses_dark.html rename app/src/main/assets/de/{about_links_light.html => about_links.html} (71%) delete mode 100644 app/src/main/assets/de/about_links_dark.html rename app/src/main/assets/de/{about_permissions_dark.html => about_permissions.html} (90%) delete mode 100644 app/src/main/assets/de/about_permissions_light.html rename app/src/main/assets/de/{about_privacy_policy_light.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/de/about_privacy_policy_dark.html rename app/src/main/assets/de/{guide_domain_settings_light.html => guide_domain_settings.html} (73%) delete mode 100644 app/src/main/assets/de/guide_domain_settings_dark.html rename app/src/main/assets/de/{guide_javascript_light.html => guide_javascript.html} (85%) delete mode 100644 app/src/main/assets/de/guide_javascript_dark.html rename app/src/main/assets/de/{guide_local_storage_light.html => guide_local_storage.html} (90%) delete mode 100644 app/src/main/assets/de/guide_local_storage_dark.html rename app/src/main/assets/de/{guide_overview_light.html => guide_overview.html} (84%) delete mode 100644 app/src/main/assets/de/guide_overview_dark.html rename app/src/main/assets/de/{guide_proxies_light.html => guide_proxies.html} (90%) delete mode 100644 app/src/main/assets/de/guide_proxies_dark.html rename app/src/main/assets/de/{guide_requests_light.html => guide_requests.html} (92%) delete mode 100644 app/src/main/assets/de/guide_requests_dark.html rename app/src/main/assets/de/{guide_ssl_certificates_light.html => guide_ssl_certificates.html} (86%) delete mode 100644 app/src/main/assets/de/guide_ssl_certificates_dark.html rename app/src/main/assets/de/{guide_tracking_ids_light.html => guide_tracking_ids.html} (80%) delete mode 100644 app/src/main/assets/de/guide_tracking_ids_dark.html rename app/src/main/assets/de/{guide_user_agent_light.html => guide_user_agent.html} (92%) delete mode 100644 app/src/main/assets/de/guide_user_agent_dark.html rename app/src/main/assets/en/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/en/about_changelog_light.html rename app/src/main/assets/en/{about_contributors_dark.html => about_contributors.html} (89%) delete mode 100644 app/src/main/assets/en/about_contributors_light.html rename app/src/main/assets/en/{about_licenses_light.html => about_licenses.html} (88%) delete mode 100644 app/src/main/assets/en/about_licenses_dark.html rename app/src/main/assets/en/{about_links_light.html => about_links.html} (68%) delete mode 100644 app/src/main/assets/en/about_links_dark.html rename app/src/main/assets/en/{about_permissions_light.html => about_permissions.html} (88%) delete mode 100644 app/src/main/assets/en/about_permissions_dark.html rename app/src/main/assets/en/{about_privacy_policy_light.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/en/about_privacy_policy_dark.html rename app/src/main/assets/en/{guide_domain_settings_dark.html => guide_domain_settings.html} (70%) delete mode 100644 app/src/main/assets/en/guide_domain_settings_light.html rename app/src/main/assets/en/{guide_javascript_dark.html => guide_javascript.html} (83%) delete mode 100644 app/src/main/assets/en/guide_javascript_light.html rename app/src/main/assets/en/{guide_local_storage_light.html => guide_local_storage.html} (89%) delete mode 100644 app/src/main/assets/en/guide_local_storage_dark.html rename app/src/main/assets/en/{guide_overview_dark.html => guide_overview.html} (82%) delete mode 100644 app/src/main/assets/en/guide_overview_light.html rename app/src/main/assets/en/{guide_proxies_dark.html => guide_proxies.html} (88%) delete mode 100644 app/src/main/assets/en/guide_proxies_light.html rename app/src/main/assets/en/{guide_requests_dark.html => guide_requests.html} (91%) delete mode 100644 app/src/main/assets/en/guide_requests_light.html rename app/src/main/assets/en/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (84%) delete mode 100644 app/src/main/assets/en/guide_ssl_certificates_light.html rename app/src/main/assets/en/{guide_tracking_ids_dark.html => guide_tracking_ids.html} (76%) delete mode 100644 app/src/main/assets/en/guide_tracking_ids_light.html rename app/src/main/assets/en/{guide_user_agent_light.html => guide_user_agent.html} (92%) delete mode 100644 app/src/main/assets/en/guide_user_agent_dark.html rename app/src/main/assets/es/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/es/about_changelog_light.html rename app/src/main/assets/es/{about_contributors_dark.html => about_contributors.html} (89%) delete mode 100644 app/src/main/assets/es/about_contributors_light.html rename app/src/main/assets/es/{about_licenses_light.html => about_licenses.html} (89%) delete mode 100644 app/src/main/assets/es/about_licenses_dark.html rename app/src/main/assets/es/{about_links_light.html => about_links.html} (70%) delete mode 100644 app/src/main/assets/es/about_links_dark.html rename app/src/main/assets/es/{about_permissions_dark.html => about_permissions.html} (90%) delete mode 100644 app/src/main/assets/es/about_permissions_light.html rename app/src/main/assets/es/{about_privacy_policy_dark.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/es/about_privacy_policy_light.html rename app/src/main/assets/es/{guide_domain_settings_dark.html => guide_domain_settings.html} (73%) delete mode 100644 app/src/main/assets/es/guide_domain_settings_light.html rename app/src/main/assets/es/{guide_javascript_dark.html => guide_javascript.html} (84%) delete mode 100644 app/src/main/assets/es/guide_javascript_light.html rename app/src/main/assets/es/{guide_local_storage_dark.html => guide_local_storage.html} (90%) delete mode 100644 app/src/main/assets/es/guide_local_storage_light.html rename app/src/main/assets/es/{guide_overview_dark.html => guide_overview.html} (83%) delete mode 100644 app/src/main/assets/es/guide_overview_light.html rename app/src/main/assets/es/{guide_proxies_dark.html => guide_proxies.html} (89%) delete mode 100644 app/src/main/assets/es/guide_proxies_light.html rename app/src/main/assets/es/{guide_requests_dark.html => guide_requests.html} (91%) delete mode 100644 app/src/main/assets/es/guide_requests_light.html rename app/src/main/assets/es/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (85%) delete mode 100644 app/src/main/assets/es/guide_ssl_certificates_light.html rename app/src/main/assets/es/{guide_tracking_ids_dark.html => guide_tracking_ids.html} (78%) delete mode 100644 app/src/main/assets/es/guide_tracking_ids_light.html rename app/src/main/assets/es/{guide_user_agent_dark.html => guide_user_agent.html} (91%) delete mode 100644 app/src/main/assets/es/guide_user_agent_light.html rename app/src/main/assets/fr/{about_changelog_light.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/fr/about_changelog_dark.html rename app/src/main/assets/fr/{about_contributors_dark.html => about_contributors.html} (89%) delete mode 100644 app/src/main/assets/fr/about_contributors_light.html rename app/src/main/assets/fr/{about_licenses_dark.html => about_licenses.html} (89%) delete mode 100644 app/src/main/assets/fr/about_licenses_light.html rename app/src/main/assets/fr/{about_links_light.html => about_links.html} (70%) delete mode 100644 app/src/main/assets/fr/about_links_dark.html rename app/src/main/assets/fr/{about_permissions_dark.html => about_permissions.html} (90%) delete mode 100644 app/src/main/assets/fr/about_permissions_light.html rename app/src/main/assets/fr/{about_privacy_policy_light.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/fr/about_privacy_policy_dark.html rename app/src/main/assets/fr/{guide_domain_settings_light.html => guide_domain_settings.html} (66%) delete mode 100644 app/src/main/assets/fr/guide_domain_settings_dark.html rename app/src/main/assets/fr/{guide_javascript_dark.html => guide_javascript.html} (87%) delete mode 100644 app/src/main/assets/fr/guide_javascript_light.html rename app/src/main/assets/fr/{guide_local_storage_dark.html => guide_local_storage.html} (90%) delete mode 100644 app/src/main/assets/fr/guide_local_storage_light.html rename app/src/main/assets/fr/{guide_overview_dark.html => guide_overview.html} (83%) delete mode 100644 app/src/main/assets/fr/guide_overview_light.html rename app/src/main/assets/fr/{guide_proxies_dark.html => guide_proxies.html} (90%) delete mode 100644 app/src/main/assets/fr/guide_proxies_light.html rename app/src/main/assets/fr/{guide_requests_dark.html => guide_requests.html} (91%) delete mode 100644 app/src/main/assets/fr/guide_requests_light.html rename app/src/main/assets/fr/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (85%) delete mode 100644 app/src/main/assets/fr/guide_ssl_certificates_light.html rename app/src/main/assets/fr/{guide_tracking_ids_dark.html => guide_tracking_ids.html} (79%) delete mode 100644 app/src/main/assets/fr/guide_tracking_ids_light.html rename app/src/main/assets/fr/{guide_user_agent_dark.html => guide_user_agent.html} (92%) delete mode 100644 app/src/main/assets/fr/guide_user_agent_light.html rename app/src/main/assets/it/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/it/about_changelog_light.html rename app/src/main/assets/it/{about_contributors_dark.html => about_contributors.html} (89%) delete mode 100644 app/src/main/assets/it/about_contributors_light.html rename app/src/main/assets/it/{about_licenses_light.html => about_licenses.html} (90%) delete mode 100644 app/src/main/assets/it/about_licenses_dark.html rename app/src/main/assets/it/{about_links_light.html => about_links.html} (67%) delete mode 100644 app/src/main/assets/it/about_links_dark.html rename app/src/main/assets/it/{about_permissions_dark.html => about_permissions.html} (90%) delete mode 100644 app/src/main/assets/it/about_permissions_light.html rename app/src/main/assets/it/{about_privacy_policy_dark.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/it/about_privacy_policy_light.html rename app/src/main/assets/it/{guide_domain_settings_light.html => guide_domain_settings.html} (74%) delete mode 100644 app/src/main/assets/it/guide_domain_settings_dark.html rename app/src/main/assets/it/{guide_javascript_dark.html => guide_javascript.html} (84%) delete mode 100644 app/src/main/assets/it/guide_javascript_light.html rename app/src/main/assets/it/{guide_local_storage_dark.html => guide_local_storage.html} (90%) delete mode 100644 app/src/main/assets/it/guide_local_storage_light.html rename app/src/main/assets/it/{guide_overview_dark.html => guide_overview.html} (83%) delete mode 100644 app/src/main/assets/it/guide_overview_light.html rename app/src/main/assets/it/{guide_proxies_dark.html => guide_proxies.html} (90%) delete mode 100644 app/src/main/assets/it/guide_proxies_light.html rename app/src/main/assets/it/{guide_requests_light.html => guide_requests.html} (92%) delete mode 100644 app/src/main/assets/it/guide_requests_dark.html rename app/src/main/assets/it/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (85%) delete mode 100644 app/src/main/assets/it/guide_ssl_certificates_light.html rename app/src/main/assets/it/{guide_tracking_ids_light.html => guide_tracking_ids.html} (79%) delete mode 100644 app/src/main/assets/it/guide_tracking_ids_dark.html rename app/src/main/assets/it/{guide_user_agent_dark.html => guide_user_agent.html} (91%) delete mode 100644 app/src/main/assets/it/guide_user_agent_light.html rename app/src/main/assets/ru/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/ru/about_changelog_light.html rename app/src/main/assets/ru/{about_contributors_dark.html => about_contributors.html} (90%) delete mode 100644 app/src/main/assets/ru/about_contributors_light.html rename app/src/main/assets/ru/{about_licenses_light.html => about_licenses.html} (89%) delete mode 100644 app/src/main/assets/ru/about_licenses_dark.html rename app/src/main/assets/ru/{about_links_light.html => about_links.html} (69%) delete mode 100644 app/src/main/assets/ru/about_links_dark.html rename app/src/main/assets/ru/{about_permissions_dark.html => about_permissions.html} (91%) delete mode 100644 app/src/main/assets/ru/about_permissions_light.html rename app/src/main/assets/ru/{about_privacy_policy_dark.html => about_privacy_policy.html} (93%) delete mode 100644 app/src/main/assets/ru/about_privacy_policy_light.html rename app/src/main/assets/ru/{guide_domain_settings_dark.html => guide_domain_settings.html} (72%) delete mode 100644 app/src/main/assets/ru/guide_domain_settings_light.html rename app/src/main/assets/ru/{guide_javascript_dark.html => guide_javascript.html} (87%) delete mode 100644 app/src/main/assets/ru/guide_javascript_light.html rename app/src/main/assets/ru/{guide_local_storage_dark.html => guide_local_storage.html} (92%) delete mode 100644 app/src/main/assets/ru/guide_local_storage_light.html rename app/src/main/assets/ru/{guide_overview_dark.html => guide_overview.html} (86%) delete mode 100644 app/src/main/assets/ru/guide_overview_light.html rename app/src/main/assets/ru/{guide_proxies_dark.html => guide_proxies.html} (92%) delete mode 100644 app/src/main/assets/ru/guide_proxies_light.html rename app/src/main/assets/ru/{guide_requests_dark.html => guide_requests.html} (93%) delete mode 100644 app/src/main/assets/ru/guide_requests_light.html rename app/src/main/assets/ru/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (88%) delete mode 100644 app/src/main/assets/ru/guide_ssl_certificates_light.html rename app/src/main/assets/ru/{guide_tracking_ids_dark.html => guide_tracking_ids.html} (80%) delete mode 100644 app/src/main/assets/ru/guide_tracking_ids_light.html rename app/src/main/assets/ru/{guide_user_agent_light.html => guide_user_agent.html} (94%) delete mode 100644 app/src/main/assets/ru/guide_user_agent_dark.html create mode 100644 app/src/main/assets/shared_images/add.svg delete mode 100644 app/src/main/assets/shared_images/add_dark.png delete mode 100644 app/src/main/assets/shared_images/add_light.png create mode 100644 app/src/main/assets/shared_images/arrow_back.svg delete mode 100644 app/src/main/assets/shared_images/arrow_back_dark.png delete mode 100644 app/src/main/assets/shared_images/arrow_back_light.png create mode 100644 app/src/main/assets/shared_images/arrow_forward.svg delete mode 100644 app/src/main/assets/shared_images/arrow_forward_dark.png delete mode 100644 app/src/main/assets/shared_images/arrow_forward_light.png create mode 100644 app/src/main/assets/shared_images/bookmarks.svg delete mode 100644 app/src/main/assets/shared_images/bookmarks_dark.png delete mode 100644 app/src/main/assets/shared_images/bookmarks_light.png create mode 100644 app/src/main/assets/shared_images/bug_report.svg delete mode 100644 app/src/main/assets/shared_images/bug_report_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/bug_report_blue_light.png delete mode 100644 app/src/main/assets/shared_images/bug_report_dark.png delete mode 100644 app/src/main/assets/shared_images/bug_report_light.png create mode 100644 app/src/main/assets/shared_images/camera_enhance.svg delete mode 100644 app/src/main/assets/shared_images/camera_enhance_dark.png delete mode 100644 app/src/main/assets/shared_images/camera_enhance_light.png create mode 100644 app/src/main/assets/shared_images/chrome_reader_mode.svg delete mode 100644 app/src/main/assets/shared_images/chrome_reader_mode_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/chrome_reader_mode_blue_guide_dark.png delete mode 100644 app/src/main/assets/shared_images/chrome_reader_mode_blue_light.png delete mode 100644 app/src/main/assets/shared_images/chrome_reader_mode_dark.png delete mode 100644 app/src/main/assets/shared_images/chrome_reader_mode_light.png create mode 100644 app/src/main/assets/shared_images/clear_and_exit.svg delete mode 100644 app/src/main/assets/shared_images/clear_and_exit_dark.png delete mode 100644 app/src/main/assets/shared_images/clear_and_exit_light.png create mode 100644 app/src/main/assets/shared_images/close.svg delete mode 100644 app/src/main/assets/shared_images/close_dark.png delete mode 100644 app/src/main/assets/shared_images/close_light.png create mode 100644 app/src/main/assets/shared_images/cookie.svg delete mode 100644 app/src/main/assets/shared_images/cookie_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/cookie_blue_light.png delete mode 100644 app/src/main/assets/shared_images/cookie_dark.png delete mode 100644 app/src/main/assets/shared_images/cookie_light.png create mode 100644 app/src/main/assets/shared_images/create_bookmark.svg delete mode 100644 app/src/main/assets/shared_images/create_bookmark_dark.png delete mode 100644 app/src/main/assets/shared_images/create_bookmark_light.png create mode 100644 app/src/main/assets/shared_images/create_folder.svg delete mode 100644 app/src/main/assets/shared_images/create_folder_dark.png delete mode 100644 app/src/main/assets/shared_images/create_folder_light.png create mode 100644 app/src/main/assets/shared_images/delete.svg delete mode 100644 app/src/main/assets/shared_images/delete_dark.png create mode 100644 app/src/main/assets/shared_images/delete_forever.svg delete mode 100644 app/src/main/assets/shared_images/delete_forever_dark.png delete mode 100644 app/src/main/assets/shared_images/delete_forever_light.png delete mode 100644 app/src/main/assets/shared_images/delete_light.png create mode 100644 app/src/main/assets/shared_images/devices_other.svg delete mode 100644 app/src/main/assets/shared_images/devices_other_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/devices_other_blue_light.png delete mode 100644 app/src/main/assets/shared_images/devices_other_dark.png delete mode 100644 app/src/main/assets/shared_images/devices_other_light.png create mode 100644 app/src/main/assets/shared_images/dns.svg delete mode 100644 app/src/main/assets/shared_images/dns_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/dns_blue_light.png delete mode 100644 app/src/main/assets/shared_images/dns_dark.png delete mode 100644 app/src/main/assets/shared_images/dns_light.png create mode 100644 app/src/main/assets/shared_images/donut_small.svg delete mode 100644 app/src/main/assets/shared_images/donut_small_dark.png delete mode 100644 app/src/main/assets/shared_images/donut_small_light.png create mode 100644 app/src/main/assets/shared_images/edit.svg delete mode 100644 app/src/main/assets/shared_images/edit_dark.png delete mode 100644 app/src/main/assets/shared_images/edit_light.png create mode 100644 app/src/main/assets/shared_images/expand_less.svg delete mode 100644 app/src/main/assets/shared_images/expand_less_dark.png delete mode 100644 app/src/main/assets/shared_images/expand_less_light.png create mode 100644 app/src/main/assets/shared_images/expand_more.svg delete mode 100644 app/src/main/assets/shared_images/expand_more_dark.png delete mode 100644 app/src/main/assets/shared_images/expand_more_light.png create mode 100644 app/src/main/assets/shared_images/file_copy.svg delete mode 100644 app/src/main/assets/shared_images/file_copy_dark.png delete mode 100644 app/src/main/assets/shared_images/file_copy_light.png create mode 100644 app/src/main/assets/shared_images/file_download.svg delete mode 100644 app/src/main/assets/shared_images/file_download_dark.png delete mode 100644 app/src/main/assets/shared_images/file_download_light.png create mode 100644 app/src/main/assets/shared_images/find_in_page.svg delete mode 100644 app/src/main/assets/shared_images/find_in_page_dark.png delete mode 100644 app/src/main/assets/shared_images/find_in_page_light.png create mode 100644 app/src/main/assets/shared_images/folder.svg delete mode 100644 app/src/main/assets/shared_images/folder_dark.png delete mode 100644 app/src/main/assets/shared_images/folder_light.png create mode 100644 app/src/main/assets/shared_images/home.svg delete mode 100644 app/src/main/assets/shared_images/home_dark.png delete mode 100644 app/src/main/assets/shared_images/home_light.png create mode 100644 app/src/main/assets/shared_images/image.svg delete mode 100644 app/src/main/assets/shared_images/image_dark.png delete mode 100644 app/src/main/assets/shared_images/image_light.png create mode 100644 app/src/main/assets/shared_images/import_contacts.svg delete mode 100644 app/src/main/assets/shared_images/import_contacts_dark.png delete mode 100644 app/src/main/assets/shared_images/import_contacts_light.png create mode 100644 app/src/main/assets/shared_images/import_export.svg delete mode 100644 app/src/main/assets/shared_images/import_export_dark.png delete mode 100644 app/src/main/assets/shared_images/import_export_light.png create mode 100644 app/src/main/assets/shared_images/important_devices.svg delete mode 100644 app/src/main/assets/shared_images/important_devices_dark.png delete mode 100644 app/src/main/assets/shared_images/important_devices_light.png create mode 100644 app/src/main/assets/shared_images/info_outline.svg delete mode 100644 app/src/main/assets/shared_images/info_outline_dark.png delete mode 100644 app/src/main/assets/shared_images/info_outline_light.png delete mode 100644 app/src/main/assets/shared_images/javascript_enabled.png create mode 100644 app/src/main/assets/shared_images/javascript_enabled.svg create mode 100644 app/src/main/assets/shared_images/language.svg delete mode 100644 app/src/main/assets/shared_images/language_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/language_blue_light.png delete mode 100644 app/src/main/assets/shared_images/language_dark.png delete mode 100644 app/src/main/assets/shared_images/language_light.png create mode 100644 app/src/main/assets/shared_images/link_off.svg delete mode 100644 app/src/main/assets/shared_images/link_off_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/link_off_blue_light.png delete mode 100644 app/src/main/assets/shared_images/link_off_dark.png delete mode 100644 app/src/main/assets/shared_images/link_off_light.png create mode 100644 app/src/main/assets/shared_images/list.svg delete mode 100644 app/src/main/assets/shared_images/list_dark.png delete mode 100644 app/src/main/assets/shared_images/list_light.png create mode 100644 app/src/main/assets/shared_images/local_activity.svg delete mode 100644 app/src/main/assets/shared_images/local_activity_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/local_activity_blue_light.png delete mode 100644 app/src/main/assets/shared_images/local_activity_dark.png delete mode 100644 app/src/main/assets/shared_images/local_activity_light.png create mode 100644 app/src/main/assets/shared_images/location_off.svg delete mode 100644 app/src/main/assets/shared_images/location_off_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/location_off_blue_light.png delete mode 100644 app/src/main/assets/shared_images/location_off_dark.png delete mode 100644 app/src/main/assets/shared_images/location_off_light.png create mode 100644 app/src/main/assets/shared_images/lock.svg delete mode 100644 app/src/main/assets/shared_images/lock_dark.png delete mode 100644 app/src/main/assets/shared_images/lock_light.png create mode 100644 app/src/main/assets/shared_images/map.svg delete mode 100644 app/src/main/assets/shared_images/map_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/map_blue_light.png delete mode 100644 app/src/main/assets/shared_images/map_dark.png delete mode 100644 app/src/main/assets/shared_images/map_light.png create mode 100644 app/src/main/assets/shared_images/more.svg delete mode 100644 app/src/main/assets/shared_images/more_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/more_blue_light.png delete mode 100644 app/src/main/assets/shared_images/more_dark.png delete mode 100644 app/src/main/assets/shared_images/more_light.png create mode 100644 app/src/main/assets/shared_images/move_to_folder.svg delete mode 100644 app/src/main/assets/shared_images/move_to_folder_dark.png delete mode 100644 app/src/main/assets/shared_images/move_to_folder_light.png create mode 100644 app/src/main/assets/shared_images/new_releases.svg delete mode 100644 app/src/main/assets/shared_images/new_releases_dark.png delete mode 100644 app/src/main/assets/shared_images/new_releases_light.png create mode 100644 app/src/main/assets/shared_images/night_mode.svg delete mode 100644 app/src/main/assets/shared_images/night_mode_dark.png delete mode 100644 app/src/main/assets/shared_images/night_mode_light.png create mode 100644 app/src/main/assets/shared_images/open_in_browser.svg delete mode 100644 app/src/main/assets/shared_images/open_in_browser_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/open_in_browser_blue_light.png delete mode 100644 app/src/main/assets/shared_images/open_in_browser_dark.png delete mode 100644 app/src/main/assets/shared_images/open_in_browser_light.png create mode 100644 app/src/main/assets/shared_images/payment.svg delete mode 100644 app/src/main/assets/shared_images/payment_dark.png delete mode 100644 app/src/main/assets/shared_images/payment_light.png delete mode 100644 app/src/main/assets/shared_images/privacy_browser.png create mode 100644 app/src/main/assets/shared_images/privacy_browser.svg delete mode 100644 app/src/main/assets/shared_images/privacy_browser_free.png create mode 100644 app/src/main/assets/shared_images/privacy_browser_free.svg create mode 100644 app/src/main/assets/shared_images/question_answer.svg delete mode 100644 app/src/main/assets/shared_images/question_answer_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/question_answer_blue_light.png delete mode 100644 app/src/main/assets/shared_images/question_answer_dark.png delete mode 100644 app/src/main/assets/shared_images/question_answer_light.png create mode 100644 app/src/main/assets/shared_images/refresh.svg delete mode 100644 app/src/main/assets/shared_images/refresh_dark.png delete mode 100644 app/src/main/assets/shared_images/refresh_light.png create mode 100644 app/src/main/assets/shared_images/save.svg delete mode 100644 app/src/main/assets/shared_images/save_dark.png delete mode 100644 app/src/main/assets/shared_images/save_light.png create mode 100644 app/src/main/assets/shared_images/search.svg delete mode 100644 app/src/main/assets/shared_images/search_dark.png delete mode 100644 app/src/main/assets/shared_images/search_light.png create mode 100644 app/src/main/assets/shared_images/select_all.svg delete mode 100644 app/src/main/assets/shared_images/select_all_dark.png delete mode 100644 app/src/main/assets/shared_images/select_all_light.png create mode 100644 app/src/main/assets/shared_images/settings.svg delete mode 100644 app/src/main/assets/shared_images/settings_dark.png delete mode 100644 app/src/main/assets/shared_images/settings_light.png create mode 100644 app/src/main/assets/shared_images/settings_overscan.svg delete mode 100644 app/src/main/assets/shared_images/settings_overscan_dark.png delete mode 100644 app/src/main/assets/shared_images/settings_overscan_light.png create mode 100644 app/src/main/assets/shared_images/share.svg delete mode 100644 app/src/main/assets/shared_images/share_day.png delete mode 100644 app/src/main/assets/shared_images/share_night.png create mode 100644 app/src/main/assets/shared_images/smartphone.svg delete mode 100644 app/src/main/assets/shared_images/smartphone_dark.png delete mode 100644 app/src/main/assets/shared_images/smartphone_light.png create mode 100644 app/src/main/assets/shared_images/sort.svg delete mode 100644 app/src/main/assets/shared_images/sort_dark.png delete mode 100644 app/src/main/assets/shared_images/sort_light.png create mode 100644 app/src/main/assets/shared_images/sort_selected.svg delete mode 100644 app/src/main/assets/shared_images/sort_selected_dark.png delete mode 100644 app/src/main/assets/shared_images/sort_selected_light.png create mode 100644 app/src/main/assets/shared_images/style.svg delete mode 100644 app/src/main/assets/shared_images/style_dark.png delete mode 100644 app/src/main/assets/shared_images/style_light.png create mode 100644 app/src/main/assets/shared_images/subtitles.svg delete mode 100644 app/src/main/assets/shared_images/subtitles_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/subtitles_blue_light.png delete mode 100644 app/src/main/assets/shared_images/subtitles_dark.png delete mode 100644 app/src/main/assets/shared_images/subtitles_light.png create mode 100644 app/src/main/assets/shared_images/tab.svg delete mode 100644 app/src/main/assets/shared_images/tab_dark.png delete mode 100644 app/src/main/assets/shared_images/tab_light.png create mode 100644 app/src/main/assets/shared_images/text_fields.svg delete mode 100644 app/src/main/assets/shared_images/text_fields_dark.png delete mode 100644 app/src/main/assets/shared_images/text_fields_light.png create mode 100644 app/src/main/assets/shared_images/thumbs_up_down.svg delete mode 100644 app/src/main/assets/shared_images/thumbs_up_down_dark.png delete mode 100644 app/src/main/assets/shared_images/thumbs_up_down_light.png create mode 100644 app/src/main/assets/shared_images/vertical_align_bottom.svg delete mode 100644 app/src/main/assets/shared_images/vertical_align_bottom_dark.png delete mode 100644 app/src/main/assets/shared_images/vertical_align_bottom_light.png create mode 100644 app/src/main/assets/shared_images/vertical_align_top.svg delete mode 100644 app/src/main/assets/shared_images/vertical_align_top_dark.png delete mode 100644 app/src/main/assets/shared_images/vertical_align_top_light.png create mode 100644 app/src/main/assets/shared_images/visibility_off.svg delete mode 100644 app/src/main/assets/shared_images/visibility_off_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/visibility_off_blue_light.png delete mode 100644 app/src/main/assets/shared_images/visibility_off_dark.png delete mode 100644 app/src/main/assets/shared_images/visibility_off_light.png create mode 100644 app/src/main/assets/shared_images/vpn_key.svg delete mode 100644 app/src/main/assets/shared_images/vpn_key_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/vpn_key_blue_light.png delete mode 100644 app/src/main/assets/shared_images/vpn_key_dark.png delete mode 100644 app/src/main/assets/shared_images/vpn_key_light.png create mode 100644 app/src/main/assets/shared_images/vpn_lock.svg delete mode 100644 app/src/main/assets/shared_images/vpn_lock_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/vpn_lock_blue_light.png delete mode 100644 app/src/main/assets/shared_images/vpn_lock_dark.png delete mode 100644 app/src/main/assets/shared_images/vpn_lock_light.png delete mode 100644 app/src/main/assets/shared_images/warning.png create mode 100644 app/src/main/assets/shared_images/warning.svg create mode 100644 app/src/main/assets/shared_images/web.svg delete mode 100644 app/src/main/assets/shared_images/web_blue_dark.png delete mode 100644 app/src/main/assets/shared_images/web_blue_light.png delete mode 100644 app/src/main/assets/shared_images/web_dark.png delete mode 100644 app/src/main/assets/shared_images/web_light.png rename app/src/main/assets/tr/{about_changelog_dark.html => about_changelog.html} (99%) delete mode 100644 app/src/main/assets/tr/about_changelog_light.html rename app/src/main/assets/tr/{about_contributors_dark.html => about_contributors.html} (89%) delete mode 100644 app/src/main/assets/tr/about_contributors_light.html rename app/src/main/assets/tr/{about_licenses_light.html => about_licenses.html} (89%) delete mode 100644 app/src/main/assets/tr/about_licenses_dark.html rename app/src/main/assets/tr/{about_links_light.html => about_links.html} (69%) delete mode 100644 app/src/main/assets/tr/about_links_dark.html rename app/src/main/assets/tr/{about_permissions_dark.html => about_permissions.html} (89%) delete mode 100644 app/src/main/assets/tr/about_permissions_light.html rename app/src/main/assets/tr/{about_privacy_policy_dark.html => about_privacy_policy.html} (92%) delete mode 100644 app/src/main/assets/tr/about_privacy_policy_light.html rename app/src/main/assets/tr/{guide_domain_settings_dark.html => guide_domain_settings.html} (71%) delete mode 100644 app/src/main/assets/tr/guide_domain_settings_light.html rename app/src/main/assets/tr/{guide_javascript_dark.html => guide_javascript.html} (82%) delete mode 100644 app/src/main/assets/tr/guide_javascript_light.html rename app/src/main/assets/tr/{guide_local_storage_light.html => guide_local_storage.html} (90%) delete mode 100644 app/src/main/assets/tr/guide_local_storage_dark.html rename app/src/main/assets/tr/{guide_overview_dark.html => guide_overview.html} (83%) delete mode 100644 app/src/main/assets/tr/guide_overview_light.html rename app/src/main/assets/tr/{guide_proxies_dark.html => guide_proxies.html} (88%) delete mode 100644 app/src/main/assets/tr/guide_proxies_light.html rename app/src/main/assets/tr/{guide_requests_light.html => guide_requests.html} (92%) delete mode 100644 app/src/main/assets/tr/guide_requests_dark.html rename app/src/main/assets/tr/{guide_ssl_certificates_dark.html => guide_ssl_certificates.html} (85%) delete mode 100644 app/src/main/assets/tr/guide_ssl_certificates_light.html rename app/src/main/assets/tr/{guide_tracking_ids_dark.html => guide_tracking_ids.html} (78%) delete mode 100644 app/src/main/assets/tr/guide_tracking_ids_light.html rename app/src/main/assets/tr/{guide_user_agent_dark.html => guide_user_agent.html} (91%) delete mode 100644 app/src/main/assets/tr/guide_user_agent_light.html delete mode 100644 app/src/main/java/com/stoutner/privacybrowser/fragments/GuideTabFragment.java create mode 100644 app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 9a8b7e5c..8144c3cf 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,8 +1,6 @@ - \ No newline at end of file diff --git a/.idea/dictionaries/soren.xml b/.idea/dictionaries/soren.xml index 60111a3f..9e0f62ac 100644 --- a/.idea/dictionaries/soren.xml +++ b/.idea/dictionaries/soren.xml @@ -37,6 +37,7 @@ cname commitdiff coordinatorlayout + cors customuseragent daeef databaseview @@ -71,6 +72,7 @@ fbee fdfilter fdid + ffffff fileprovider firebase flohic diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 74e816d0..ec19cd7e 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -16,6 +16,7 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index 419007b0..eccecb07 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,7 +35,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 93f58a3b..6ece7516 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - - + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 595aab29..e54b4408 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ dependencies { implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0' implementation "androidx.core:core-ktx:1.3.2" implementation 'androidx.drawerlayout:drawerlayout:1.1.1' - implementation 'androidx.preference:preference:1.1.1' + implementation 'androidx.preference:preference-ktx:1.1.1' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.viewpager:viewpager:1.0.0' implementation 'androidx.webkit:webkit:1.3.0' @@ -96,5 +96,5 @@ dependencies { implementation 'com.google.android.material:material:1.2.1' // Only compile Firebase ads for the free flavor. - freeImplementation 'com.google.firebase:firebase-ads:19.4.0' + freeImplementation 'com.google.firebase:firebase-ads:19.5.0' } \ No newline at end of file diff --git a/app/src/free/assets/de/about_permissions_light.html b/app/src/free/assets/de/about_permissions.html similarity index 95% rename from app/src/free/assets/de/about_permissions_light.html rename to app/src/free/assets/de/about_permissions.html index 1715f999..960b4f54 100644 --- a/app/src/free/assets/de/about_permissions_light.html +++ b/app/src/free/assets/de/about_permissions.html @@ -26,7 +26,10 @@ - + + + + diff --git a/app/src/free/assets/de/about_permissions_dark.html b/app/src/free/assets/de/about_permissions_dark.html deleted file mode 100644 index d9355fc0..00000000 --- a/app/src/free/assets/de/about_permissions_dark.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - -

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.

- -

Speicher lesen

-

android.permission.READ_EXTERNAL_STORAGE

-

Benötigt, um Einstellungen aus öffentlichen Ordnern zu importieren. - Unter Android Marshmallow (API 23) und neuer kann Privacy Browser Einstellungen nur aus seinem eigenen Ordner importieren, wenn diese Berechtigung nicht erteilt wird.

- -

Speicher schreiben

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Benötigt, um Einstellungen und Downloads in öffentlichen Ordnern zu speichern. - Unter Android Marshmallow (API 23) und neuer kann Privacy Browser Einstellungen und Downloads nur in seinem eigenen Ordner speichern, wenn diese Berechtigung nicht erteilt wird.

- -
-
-
- -

Zusätzlich zu den oben genannten Berechtigungen zeigt Privacy Browser Free Werbeanzeigen von Google's AdMob-Netzwerk unter Zuhilfenahme des Firebase-Backends. - Für die "Kostenlos"-Plakette ergänzt Firebase die Liste der Berechtigungen um die Folgenden, - obwohl diese nicht im Quellcode der Manifest-Datei - von Privacy Browser aufgeführt werden:

- -

Netzwerk-Verbindungen anzeigen

-

android.permission.ACCESS_NETWORK_STATE

-

Erlaubt den Werbeanzeigen mitzuteilen, wenn das Gerät mit dem Internet verbunden ist und wann nicht (vermutlich damit nicht versucht wird, Werbeanzeigen neu zu laden, wenn keine Verbindung besteht). - Diese können auch mitteilen, ob eine Verbindung via WLAN, 2G, 3G, 4G, usw. besteht.

- -

Schlaf-Modus des Telefons verhindern

-

android.permission.WAKE_LOCK

-

Erlaubt den Werbeanzeigen, das Gerät nicht in den Schlaf-Modus zu versetzen und das Display nicht zu dimmen. In Stoutners Tests konnte dieses Verhalten nicht festgestellt werden.

- -

Play Install Referrer API

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Erlaubt anderen Apps mitzuteilen, ob ihre Installation über eine Werbeanzeige innerhalb von Privacy Browser Free ausgelöst wurde.

- -

Daten aus Internet empfangen

-

com.google.android.c2dm.permission.RECEIVE

-

Erlaubt Google Informationen direkt an AdView zu senden, ohne dass zuvor eine entsprechende Anfrage getätigt wurde (cloud-to-device messaging).

- - \ No newline at end of file diff --git a/app/src/free/assets/de/about_privacy_policy_light.html b/app/src/free/assets/de/about_privacy_policy.html similarity index 94% rename from app/src/free/assets/de/about_privacy_policy_light.html rename to app/src/free/assets/de/about_privacy_policy.html index 43382b10..5060287c 100644 --- a/app/src/free/assets/de/about_privacy_policy_light.html +++ b/app/src/free/assets/de/about_privacy_policy.html @@ -1,5 +1,5 @@ + diff --git a/app/src/free/assets/de/about_privacy_policy_dark.html b/app/src/free/assets/de/about_privacy_policy_dark.html deleted file mode 100644 index 49fed27d..00000000 --- a/app/src/free/assets/de/about_privacy_policy_dark.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - -

Privacy Browser Free

-

Privacy Browser Free sammelt keinerlei Benutzer-Informationen.

- -

Google Play

-

Google Play hat seine eigene Datenschutzerklärung. - Google stellt Entwicklern anonymisierte Installations-Informationen inklusive der Anzahl der Installationen unterteilt in die folgenden Kategorien bereit:

-
    -
  • Android-Version (z.B. Android 7.1)
  • -
  • Gerät (z.B. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablets (z.B. 10"-Tablet oder höher)
  • -
  • Land (z.B. USA)
  • -
  • Sprache (z.B. Englisch [USA])
  • -
  • App-Version (z.B. 14)
  • -
  • Mobilfunk-Anbieter (z.B. T-Mobile - US)
  • -
- - -

Google Play Bewertungen

-

Google Play hat seine eigene Datenschutzerklärung. - Google stellt Entwicklern folgende anonymisierte Installations-Informationen bezüglich der Bewertungen bereit:

-
    -
  • Land (z.B. USA)
  • -
  • Sprache (z.B. Englisch)
  • -
  • App-Version (z.B. 14)
  • -
  • Android-Version (z.B. Android 7.1)
  • -
  • Gerät (z.B. Google Nexus 5X [bullhead])
  • -
  • Tablets (z.B. 10"-Tablet oder höher)
  • -
- - -

Google Play Rezensionen

-

Google Play hat seine eigene Datenschutzerklärung. - Zusätzlich zum Namen des Rezensenten, der Bewertung und dem Text der Rezension (welche alle öffentlich zugänglich sind), - stellt Google dem Entwickler einige oder alle der folgenden Informationen zur Verfügung:

-
    -
  • Versions-Code (z.B. 7)
  • -
  • Versions-Name (z.B. 1.6)
  • -
  • Android-Version (z.B. Android 5.1)
  • -
  • Gerät (z.B. Galaxy S6 Edge+ [zenlte])
  • -
  • Hersteller (z.B. Samsung)
  • -
  • Gerätetyp (z.B. Mobiltelefon)
  • -
  • CPU-Fabrikat (z.B. Samsung)
  • -
  • CPU-Model (z.B. Exynos 7420)
  • -
  • Bildschirm-Auflösung (z.B. 560 dpi)
  • -
  • Bildschirm-Grösse (z.B. 2560 x 1440)
  • -
  • RAM (z.B. 4096 MB)
  • -
  • Native Plattform (z.B. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES Version (z.B. 3.1)
  • -
  • Geräte-Sprache (z.B. Englisch)
  • -
- - -

Werbeeinblendungen

-

Privacy Browser Free blendet einen Werbebanner unten am Bildschirm ein und verwendet hierfür Googles Netzwerk AdMob, - dessen eigene Datenschutzbestimmungen hier zu finden sind. - Die Ausspielung dieser Werbebanner erfolgt dabei nicht-personalisiert. - AdMob überträgt zudem anonymisierte Zusammenfassungen folgender Informationen an die Entwickler:

-
    -
  • Totale Besuche
  • -
  • Totale Klicks
  • -
  • Platform (z.B. High-End Smartphones, Tablets)
  • -
  • Aktivitäten nach Ländern
  • -
- - -

Direkte Kommunikation

-

Benutzer können z.B. per Email und Kommentaren auf stoutner.com direkt mit Stoutner Kontakt aufnehmen.

- -

Daten-Nutzung

-

Stoutner kann diese Informationen nutzen, um die Entwicklung von Privacy Browser zu unterstützen und den Status des Projekts an Benutzer zu melden. - Stoutner wird die Informationen niemals verkaufen oder an Dritte weitergeben, welche diese für Anzeigen oder Marketing nutzen.

- -
-

Revision 1.7, 14. Mai 2019

- - \ No newline at end of file diff --git a/app/src/free/assets/en/about_permissions_light.html b/app/src/free/assets/en/about_permissions.html similarity index 95% rename from app/src/free/assets/en/about_permissions_light.html rename to app/src/free/assets/en/about_permissions.html index 550aee3f..f3c36391 100644 --- a/app/src/free/assets/en/about_permissions_light.html +++ b/app/src/free/assets/en/about_permissions.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/free/assets/en/about_permissions_dark.html b/app/src/free/assets/en/about_permissions_dark.html deleted file mode 100644 index 3e1908b5..00000000 --- a/app/src/free/assets/en/about_permissions_dark.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - -

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.

- -

Read storage

-

android.permission.READ_EXTERNAL_STORAGE

-

Required to import settings from public folders. On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can import settings from the app’s folders instead.

- -

Write storage

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Required to export settings and download files to the public folders. - On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can export settings and store downloads in the app’s folders instead.

- -
-
-
- -

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 source code - 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.

- -

Play Install Referrer API

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Allows other apps to tell if their installation was launched from an ad in Privacy Browser Free.

- -

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).

- - \ No newline at end of file diff --git a/app/src/free/assets/en/about_privacy_policy_dark.html b/app/src/free/assets/en/about_privacy_policy.html similarity index 93% rename from app/src/free/assets/en/about_privacy_policy_dark.html rename to app/src/free/assets/en/about_privacy_policy.html index b4cc930a..0ec033a6 100644 --- a/app/src/free/assets/en/about_privacy_policy_dark.html +++ b/app/src/free/assets/en/about_privacy_policy.html @@ -1,5 +1,5 @@ +

Privacy Browser Free

-

Privacy Browser Free does not collect any user information.

+

Privacy Browser Free does not collect any user information.

Google Play

diff --git a/app/src/free/assets/en/about_privacy_policy_light.html b/app/src/free/assets/en/about_privacy_policy_light.html deleted file mode 100644 index 2a469bb5..00000000 --- a/app/src/free/assets/en/about_privacy_policy_light.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - -

Privacy Browser Free

-

Privacy Browser Free does not collect any user information.

- - -

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.

-
    -
  • 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.

-
    -
  • 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 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.

-
    -
  • Version code (eg. 7)
  • -
  • Version name (eg. 1.6)
  • -
  • Android version (eg. Android 5.1)
  • -
  • Device (eg. Galaxy S6 Edge+ [zenlte])
  • -
  • Manufacturer (eg. Samsung)
  • -
  • Device type (eg. Phone)
  • -
  • CPU make (eg. Samsung)
  • -
  • CPU model (eg. Exynos 7420)
  • -
  • Screen density (eg. 560 dpi)
  • -
  • Screen size (eg. 2560 x 1440)
  • -
  • RAM (eg. 4096 MB)
  • -
  • Native platform (eg. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES version (eg. 3.1)
  • -
  • 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. - These ads are set to be non-personalized. - AdMob reports anonymized summaries of the following information to developers.

-
    -
  • 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.

- - -

Use of Information

-

Stoutner may use this information to assist in the development of Privacy Browser and communicate the status of the project to users. - Stoutner will never sell this information nor transfer it to any third party that would use it for advertising or marketing.

- -
-

Revision 1.7, 14 May 2019

- - \ No newline at end of file diff --git a/app/src/free/assets/es/about_permissions_light.html b/app/src/free/assets/es/about_permissions.html similarity index 95% rename from app/src/free/assets/es/about_permissions_light.html rename to app/src/free/assets/es/about_permissions.html index e1095f60..1aba7219 100644 --- a/app/src/free/assets/es/about_permissions_light.html +++ b/app/src/free/assets/es/about_permissions.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/free/assets/es/about_permissions_dark.html b/app/src/free/assets/es/about_permissions_dark.html deleted file mode 100644 index db3ded6c..00000000 --- a/app/src/free/assets/es/about_permissions_dark.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - -

Tener acceso completo a la red

-

android.permission.INTERNET

-

Requerido para que WebView consiga acceso a internet. Sin este permiso, Navegador Privado sería, “Sin Navegador: Protegiendo su privacidad estando completamente desconectado de internet”.

- -

Instalar accesos directos

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Requerido para añadir accesos directos de páginas web en el escritorio.

- -

Almacenamiento de lectura

-

android.permission.READ_EXTERNAL_STORAGE

-

Requerido para importar la configuración de las carpetas públicas. - En Android Marshmallow (API 23) y posteriores, si se niega este permiso, Privacy Browser puede en cambio importar la configuración desde las carpetas de la aplicación.

- -

Almacenamiento de escritura

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Requerido para exportar la configuración y descargar archivos a las carpetas públicas. - En Android Marshmallow (API 23) y posteriores, si se niega este permiso, Privacy Browser puede en cambio exportar la configuración y almacenar las descargas en las carpetas de la aplicación.

- -
-
-
- -

Además, Navegador Privado Gratuito muestra anuncios de Google AdMob usando el proveedor Firebase. - En el sabor gratuito, Firebase añade los siguientes permisos aunque no aparecen en el - archivo de manifiesto de código fuente.

- -

Ver conexiones de red

-

android.permission.ACCESS_NETWORK_STATE

-

Permite a los anuncios saber si el dispositivo está conectado a internet y cuando no (probablemente para no tratar de recargar un anuncio cuando está desconectado). - También les permite saber si está conectado por wifi, 2G, 3G, 4G, etcétera.

- -

Impedir que el teléfono entre en modo de suspensión

-

android.permission.WAKE_LOCK

-

Permite a los anuncios impedir al procesador dormir y a la pantalla atenuar, aunque en mis pruebas no parece que los anuncios lo hagan así.

- -

API Install Referrer de Play

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Permite a otras aplicaciones saber si su instalación se ha iniciado desde un anuncio en el Navegador Privado gratuito.

- -

Recibir datos de internet

-

com.google.android.c2dm.permission.RECEIVE

-

Permite a Google enviar información directamente al AdView sin tener que recibir primero una solicitud (mensajes de nube a dispositivo).

- - \ No newline at end of file diff --git a/app/src/free/assets/es/about_privacy_policy_light.html b/app/src/free/assets/es/about_privacy_policy.html similarity index 94% rename from app/src/free/assets/es/about_privacy_policy_light.html rename to app/src/free/assets/es/about_privacy_policy.html index 295dc5c7..7788e1dc 100644 --- a/app/src/free/assets/es/about_privacy_policy_light.html +++ b/app/src/free/assets/es/about_privacy_policy.html @@ -1,5 +1,5 @@ +

Navegador Privado Gratuito

-

Navegador Privado Gratuito no recoge ninguna información del usuario.

+

Navegador Privado Gratuito no recoge ninguna información del usuario.

Google Play

diff --git a/app/src/free/assets/es/about_privacy_policy_dark.html b/app/src/free/assets/es/about_privacy_policy_dark.html deleted file mode 100644 index f14b7ecb..00000000 --- a/app/src/free/assets/es/about_privacy_policy_dark.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - -

Navegador Privado Gratuito

-

Navegador Privado Gratuito no recoge ninguna información del usuario.

- - -

Google Play

-

Google Play tiene su propia política de privacidad. - Google proporciona información resumida y anónima de instalación a los desarrolladores, incluyendo el número de instalaciones, organizadas por las siguientes categorías.

-
    -
  • Versión de Android (p.ej. Android 7.1)
  • -
  • Dispositivo (p.ej. Samsung Galaxy S6 [zeroflte])
  • -
  • Tabletas (p.ej. Tabletas de 10" o más)
  • -
  • País (p.ej. Estados Unidos)
  • -
  • Lenguaje (p.ej. Inglés [Estados Unidos])
  • -
  • Versión de app (p.ej. 14)
  • -
  • Proveedor (p.ej. T-Mobile - US)
  • -
- - -

Calificaciones de Google Play

-

Google Play tiene su propia política de privacidad. - Google proporciona a los desarrolladores resúmenes anónimos de la siguiente información relativa a las valoraciones de los usuarios.

-
    -
  • País (p.ej. Estados Unidos)
  • -
  • Lenguaje (p.ej. Inglés)
  • -
  • Versión de app (p.ej. 14)
  • -
  • Versión de Android (p.ej. Android 7.1)
  • -
  • Dispositivo (p.ej. Google Nexux 5X [bullhead])
  • -
  • Tabletas (p.ej. Tabletas de 10" o más)
  • -
- - -

Comentarios de Google Play

-

Google Play tiene su propia política de privacidad. - Además del nombre del comentador, la calificación y el texto del comentario (las cuales están disponibles públicamente), - Google proporciona alguna o toda la siguiente información al desarrollador.

-
    -
  • Código de versión (p.ej. 7)
  • -
  • Nombre de versión (p.ej. 1.6)
  • -
  • Versión de Android (p.ej. Android 5.1)
  • -
  • Dispositivo (p.ej. Galaxy S6 Edge+ [zenitel])
  • -
  • Fabricante (p.ej. Samsung)
  • -
  • Tipo de dispositivo (p.ej. Teléfono)
  • -
  • Fabricante de CPU (p.ej. Samsung)
  • -
  • Modelo de CPU (p.ej. Exynos 7420)
  • -
  • Densidad de pantalla (p.ej. 560 dpi)
  • -
  • Tamaño de pantalla (p.ej. 2560 x 1440)
  • -
  • RAM (p.ej. 4096 MB)
  • -
  • Plataforma nativa (p.ej. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Versión de OpenGL ES (p.ej. 3.1)
  • -
  • Lenguaje del dispositivo (p.ej. Inglés)
  • -
- - -

Anuncios

-

Navegador Privado Gratuito muestra un banner publicitario en la parte inferior de la pantalla mediante la red AdMob de Google, - que tiene su propia política de privacidad. - Estos anuncios están configurados para ser no personalizados. - AdMob reporta resúmenes anónimos de la siguiente información a los desarrolladores.

-
    -
  • Impresiones totales
  • -
  • Clicks totales
  • -
  • Plataformas (p.ej. dispositivos móviles de gama alta, tabletas)
  • -
  • Actividad por país
  • -
- - -

Comunicaciones directas

-

Los usuarios pueden elegir enviar comunicaciones directas a Stoutner, como mensajes de correo electrónico y comentarios en stoutner.com.

- -

Uso de Información

-

Stoutner puede utilizar esta información para ayudar en el desarrollo de Navegador Privado y comunicar el estado del proyecto a los usuarios. - Stoutner nunca vendrá la información ni la transferirá a ninguna tercera parte que la pudiera usar para publicidad o marketing.

- -
-

Revisión 1.7, 14 de mayo de 2019

- - \ No newline at end of file diff --git a/app/src/free/assets/fr/about_permissions_light.html b/app/src/free/assets/fr/about_permissions.html similarity index 95% rename from app/src/free/assets/fr/about_permissions_light.html rename to app/src/free/assets/fr/about_permissions.html index c23ba4da..19406877 100644 --- a/app/src/free/assets/fr/about_permissions_light.html +++ b/app/src/free/assets/fr/about_permissions.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/free/assets/fr/about_permissions_dark.html b/app/src/free/assets/fr/about_permissions_dark.html deleted file mode 100644 index 6b45a1ce..00000000 --- a/app/src/free/assets/fr/about_permissions_dark.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - -

Disposer d'un accès réseau complet

-

android.permission.INTERNET

-

Requis pour que WebView puisse accéder à Internet. Sans cette autorisation, Privacy Browser serait «No Browser: protégez votre vie privée en restant complètement hors d'Internet».

- -

Installer les raccourcis

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Requis pour ajouter des raccourcis pour les sites Web au bureau du programme de lancement.

- -

Lire le stockage

-

android.permission.READ_EXTERNAL_STORAGE

-

Requis pour importer les paramètres des dossiers publics. Sous Android Marshmallow (API 23) et plus récente, si cette autorisation est refusée, - Privacy Browser peut importer les paramètres à partir des dossiers de l'application.

- -

Mémoire d'écriture

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Requis pour exporter les paramètres et télécharger les fichiers dans les dossiers publics. - Sous Android Marshmallow (API 23) et plus récente, si cette autorisation est refusée, - Privacy Browser peut exporter les paramètres et stocker les téléchargements dans les dossiers de l'application.

- -
-
-
- -

En outre, Privacy Browser Free affiche les annonces du réseau AdMob de Google à l'aide du backend Firebase. - Pour la version gratuite, Firebase ajoute les autorisations suivantes même si elles ne sont pas répertoriées dans le code source. - manifest file.

- -

Afficher les connexions réseau

-

android.permission.ACCESS_NETWORK_STATE

-

Permet aux annonces de dire quand vous êtes connecté à Internet et quand vous n'êtes pas (vraisemblablement pour ne pas essayer de recharger une annonce lorsque vous êtes déconnecté). - Ils peuvent également savoir si vous êtes connecté via Wi-Fi, 2G, 3G, 4G, etc.

- -

Empêcher le téléphone de dormir

-

android.permission.WAKE_LOCK

-

Permet aux annonces d'empêcher le processeur de dormir et l'éclairage de l'écran, bien que lors de mes tests, je ne pense pas que les annonces le fassent réellement.

- -

Jouer Installer l'API Référent

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Permet aux autres applications de savoir si leur installation a été lancée à partir d'une annonce dans Privacy Browser Free.

- -

Recevoir des données d'Internet

-

com.google.android.c2dm.permission.RECEIVE

-

Permet à Google d'envoyer des informations directement à AdView sans avoir à recevoir de demande préalable (messagerie de périphérique à périphérique).

- - \ No newline at end of file diff --git a/app/src/free/assets/fr/about_privacy_policy_light.html b/app/src/free/assets/fr/about_privacy_policy.html similarity index 95% rename from app/src/free/assets/fr/about_privacy_policy_light.html rename to app/src/free/assets/fr/about_privacy_policy.html index b6a8abfb..6129ee0b 100644 --- a/app/src/free/assets/fr/about_privacy_policy_light.html +++ b/app/src/free/assets/fr/about_privacy_policy.html @@ -1,5 +1,5 @@ + diff --git a/app/src/free/assets/fr/about_privacy_policy_dark.html b/app/src/free/assets/fr/about_privacy_policy_dark.html deleted file mode 100644 index 3536bcd3..00000000 --- a/app/src/free/assets/fr/about_privacy_policy_dark.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser ne collecte aucune information sur l'utilisateur.

- - -

Google Play

-

Google Play a sa propre règle de confidentialité . - Google fournit aux développeurs des informations d'installation récapitulatives et anonymisées, notamment le nombre d'installations organisées selon les catégories suivantes.

-
    -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablettes (ex. Tablettes 10" et plus)
  • -
  • Pays (ex. France)
  • -
  • Langage (ex. Français [Canada])
  • -
  • Version d'Application (ex. 14)
  • -
  • Opérateur (eg. Orange - FR)
  • -
- - -

Notes Google Play

-

Google Play a sa propre règle de confidentialité . - Google fournit aux développeurs des résumés anonymisés des informations suivantes relatives aux évaluations des utilisateurs.

-
    -
  • Pays (ex. France)
  • -
  • Langage (ex. Français [Canada])
  • -
  • Version d'Application (ex. 14)
  • -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablettes (ex. Tablettes 10" et plus)
  • -
- - -

Avis Google Play

-

Google Play a sa propre règle de confidentialité. - Outre le nom du réviseur, l'évaluation et le texte de la révision (tous disponibles publiquement), Google fournit au développeur tout ou partie des informations suivantes.

-
    -
  • Code de Version (ex. 7)
  • -
  • Nom de Version (ex. 1.6)
  • -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Constructeur (ex. Samsung)
  • -
  • Type de terminal (ex. Phone)
  • -
  • La marque du processeur (ex. Samsung)
  • -
  • Le modèle de processeur (ex. Exynos 7420)
  • -
  • Densité d'affichage (ex. 560 dpi)
  • -
  • Taille d'écran (ex. 2560 x 1440)
  • -
  • RAM (ex. 4096 MB)
  • -
  • Plateforme native (ex. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Version OpenGL ES (ex. 3.1)
  • -
  • Langage du terminal (ex. English)
  • -
- - -

Annonces

-

Privacy Browser Free affiche une bannière publicitaire en bas de l'écran à l'aide du réseau AdMob de Google, - qui a sa propre politique de confidentialité. - Ces annonces sont définies pour être non-personalisées. - AdMob transmet aux développeurs des résumés anonymisés des informations suivantes.

-
    -
  • Total d'affichages
  • -
  • Total de clicks
  • -
  • Plateformes (par exemple, appareils mobiles haut de gamme, tablettes)
  • -
  • Activié par pays
  • -
- - -

Communications directes

-

Les utilisateurs peuvent choisir d'envoyer des communications directes à Stoutner, telles que des courriels et des commentaires sur stoutner.com.

- - -

Utilisation de l'information

-

Stoutner peut utiliser ces informations pour contribuer au développement de Privacy Browser et communiquer le statut du projet aux utilisateurs. - Stoutner ne vendra jamais ces informations ni ne les transférera à des tiers qui les utiliseraient à des fins publicitaires ou marketing.

- -
-

Revision 1.7, 14 Mai 2019

- - \ No newline at end of file diff --git a/app/src/free/assets/it/about_permissions_dark.html b/app/src/free/assets/it/about_permissions.html similarity index 95% rename from app/src/free/assets/it/about_permissions_dark.html rename to app/src/free/assets/it/about_permissions.html index 7d88b49b..26a4801f 100644 --- a/app/src/free/assets/it/about_permissions_dark.html +++ b/app/src/free/assets/it/about_permissions.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/free/assets/it/about_permissions_light.html b/app/src/free/assets/it/about_permissions_light.html deleted file mode 100644 index 155a7777..00000000 --- a/app/src/free/assets/it/about_permissions_light.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - -

Accesso completo alla rete

-

android.permission.INTERNET

-

E' richiesto per permettere l'accesso Internet a WebView. Senza questo permesso, Privacy Browser sarebbe “Nessun Browser: Protegge la tua Privacy restando completamente isolato da Internet”.

- -

Creazione di collegamenti

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

E' richiesto per poter creare collegamenti a siti web sulla schermata principale del dispositivo.

- -

Lettura dalla memoria

-

android.permission.READ_EXTERNAL_STORAGE

-

Richiesta per l'importazione delle impostazioni dalle cartelle pubbliche. - A partire da Android Marshmallow (API 23), se questo permesso è negato Privacy Browser può importare le impostazioni solo dalle cartelle dell'applicazione.

- -

Scrittura della memoria

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Richiesta per l'esportazione delle applicazioni e per il download di file nelle cartelle pubbliche. - A partire da Android Marshmallow (API 23), se questo permesso è negato Privacy Browser può esportare le impostazioni e salvare i download solo nelle cartelle dell'applicazione.

- -
-
-
- -

Oltre ai permessi sopraelencati, Privacy Browser Free mostra gli annunci provenienti dalla Google's AdMob network utilizzando il Firebase backend. - Se si utilizza la versione Free, Firebase aggiunge i seguenti permessi anche se non sono elencati nel codice sorgente del file - “manifest”.

- -

Visualizzare connessioni di rete

-

android.permission.ACCESS_NETWORK_STATE

-

Permette agli annunci di dire quando si è o non si è connessi a internet (presumibilmente per evitare il tentativo di ricaricare un annuncio quando non si è connessi). - Gli annunci possono anche dire se si è connessi via Wi-Fi, 2G, 3G, 4G, ecc.

- -

Impedire al dispositivo di entrare in modalità sleeping

-

android.permission.WAKE_LOCK

-

Permette agli annunci di impedire al processore di entrare in modalità sleeping e allo schermo di spegnersi, anche se dopo vari test eseguiti non sembra che il comportamento sia questo.

- -

API Play Install Referrer

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Permette alle altre applicazioni di informare se la loro installazione è stata eseguita attraverso un annuncio pubblicitario in Privacy Browser Free.

- -

Ricezione dati da Internet

-

com.google.android.c2dm.permission.RECEIVE

-

Permette a Google di inviare informazioni a AdView senza la necessità di ricevere una richiesta preventiva (messaggistica “cloud-to-device”).

- - \ No newline at end of file diff --git a/app/src/free/assets/it/about_privacy_policy_dark.html b/app/src/free/assets/it/about_privacy_policy.html similarity index 94% rename from app/src/free/assets/it/about_privacy_policy_dark.html rename to app/src/free/assets/it/about_privacy_policy.html index 1f459048..f6feef0d 100644 --- a/app/src/free/assets/it/about_privacy_policy_dark.html +++ b/app/src/free/assets/it/about_privacy_policy.html @@ -1,5 +1,5 @@ +

Privacy Browser Free

-

Privacy Browser Free non raccoglie alcuna informazione dagli utenti.

+

Privacy Browser Free non raccoglie alcuna informazione dagli utenti.

Google Play

diff --git a/app/src/free/assets/it/about_privacy_policy_light.html b/app/src/free/assets/it/about_privacy_policy_light.html deleted file mode 100644 index 32b7fb0d..00000000 --- a/app/src/free/assets/it/about_privacy_policy_light.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - -

Privacy Browser Free

-

Privacy Browser Free non raccoglie alcuna informazione dagli utenti.

- - -

Google Play

-

Google Play ha una propria privacy policy. - Google fornisce agli sviluppatori informazioni anonime sulle installazioni, incluso il numero di installazioni, secondo le seguenti categorie.

-
    -
  • Versione Android (es. Android 7.1)
  • -
  • Dispositivo (es. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablet (es. Tablet 10" o superiore)
  • -
  • Nazione (es. United States)
  • -
  • Lingua (es. English [United States])
  • -
  • Versione App (es. 14)
  • -
  • Vettore (es. T-Mobile - US)
  • -
- - -

Ratings di Google Play

-

Google Play ha una propria privacy policy. - Google fornisce agli sviluppatori sintesi anonime delle seguenti informazioni collegate ai ratings degli utenti.

-
    -
  • Nazione (es. United States)
  • -
  • Lingua (es. English)
  • -
  • Versione App (es. 14)
  • -
  • Versione Android (es. Android 7.1)
  • -
  • Dispositivo (es. Google Nexus 5X [bullhead])
  • -
  • Tablet (es. Tablets 10" o superiore)
  • -
- - -

Recensioni di Google Play

-

Google Play ha una propria privacy policy. - Oltre al nome del recensore, al rating, e al testo della recensione (i quali sono tutti pubblicamente disponibili), Google fornisce alcune o tutte le seguenti informazioni allo sviluppatore.

-
    -
  • Codice Versione (es. 7)
  • -
  • Nome Versione (es. 1.6)
  • -
  • Versione Android (es. Android 5.1)
  • -
  • Dispositivo (es. Galaxy S6 Edge+ [zenlte])
  • -
  • Costruttore (es. Samsung)
  • -
  • Tipo di dispositivo (es. SmartPhone)
  • -
  • Produttore CPU (es. Samsung)
  • -
  • Modello CPU (es. Exynos 7420)
  • -
  • Risoluzione schermo (es. 560 dpi)
  • -
  • Dimensione Schermo (es. 2560 x 1440)
  • -
  • RAM (es. 4096 MB)
  • -
  • Piattaforma nativa (es. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Versione OpenGL ES (es. 3.1)
  • -
  • Lingua del dispositivo (es. English)
  • -
- - -

Annunci

-

Privacy Browser Free mostra un banner pubblicitario nella parte inferiore dello schermo utilizzando la Google's AdMob network, - che ha una propria privacy policy. - Questi annunci sono impostati in modo da essere non-personalizzati. - AdMob fornisce agli sviluppatori sintesi anonime delle seguenti informazioni.

-
    -
  • Numero totale di visualizzazioni
  • -
  • Numero totale di click
  • -
  • Piattaforme (es. dispositivi mobili, tablet)
  • -
  • Attività per Nazione
  • -
- - -

Comunicazioni Dirette

-

E' possibile inviare comunicazioni dirette a Stoutner, ad esempio email o commenti su stoutner.com.

- - -

Utilizzo delle informazioni

-

Stoutner si riserva l'utilizzo di queste informazioni come supporto per lo sviluppo di Privacy Browser e per comunicazioni sullo stato del progetto verso gli utenti. - Stoutner non rivenderà o comunque non trasferirà mai nessuna informazione a terze parti che potrebbero utilizzarle a scopi pubblicitari o di marketing.

- -
-

Revisione 1.7, 14 Maggio 2019

- - \ No newline at end of file diff --git a/app/src/free/assets/ru/about_permissions_dark.html b/app/src/free/assets/ru/about_permissions.html similarity index 96% rename from app/src/free/assets/ru/about_permissions_dark.html rename to app/src/free/assets/ru/about_permissions.html index 34d7579b..56af41fb 100644 --- a/app/src/free/assets/ru/about_permissions_dark.html +++ b/app/src/free/assets/ru/about_permissions.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/free/assets/ru/about_permissions_light.html b/app/src/free/assets/ru/about_permissions_light.html deleted file mode 100644 index 74e2be2f..00000000 --- a/app/src/free/assets/ru/about_permissions_light.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - -

Полный доступ к сети

-

android.permission.INTERNET

-

Требуется для доступа WebView к интернету. Без этого разрешения Privacy Browser будет отображать “Нет браузера: угрозы вашей конфиденциальности нет из-за отсутствия доступа к интернету”.

- -

Установка ярлыков

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Требуется для добавления ярлыков веб-сайтов на главный экран.

- -

Чтение хранилища

-

android.permission.READ_EXTERNAL_STORAGE

-

Требуется для импорта настроек из общих папок. - В Android Marshmallow (API 23) и более поздних версиях, если это разрешение получено не будет, Privacy Browser может импортировать настройки из папок приложения.

- -

Запись хранилища

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Требуется для экспорта настроек и загрузки файлов в общие папки. - В Android Marshmallow (API 23) и более поздних версиях, если это разрешение получено не будет, Privacy Browser может экспортировать настройки и хранить загрузки в папках приложения.

- -
-
-
- -

Кроме того, Privacy Browser Free отображает объявления из сети Google AdMob с использованием бэкенда Firebase. - Для бесплатной версии Firebase добавляет следующие разрешения, даже если они не перечислены в - файле манифеста исходного кода.

- -

Просмотр сетевых подключений

-

android.permission.ACCESS_NETWORK_STATE

-

Позволяет рекламе узнавать наличие подключения к интернету (возможно, таким образом предотвращаются попытки загрузки рекламы при отсутствии активного соединения). - Кроме того, передается тип подключения - Wi-Fi, 2G, 3G, 4G, и т.д.

- -

Предотвращение засыпания устройства

-

android.permission.WAKE_LOCK

-

Позволяет рекламе предотвращать переход процессора в режим сна и экран от выключения. Результаты тестировании не свидетельствуют о том, что реклама на самом деле это делает.

- -

Play Install Referrer API

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Позволяет сторонним приложениям сообщать о запуске инсталляции из рекламы в Privacy Browser Free.

- -

Получение данных из интернета

-

com.google.android.c2dm.permission.RECEIVE

-

Позволяет Google отправлять информацию непосредственно в AdView без необходимости сначала получать запрос (обмен сообщениями между облаком и устройством).

- - \ No newline at end of file diff --git a/app/src/free/assets/ru/about_privacy_policy_dark.html b/app/src/free/assets/ru/about_privacy_policy.html similarity index 95% rename from app/src/free/assets/ru/about_privacy_policy_dark.html rename to app/src/free/assets/ru/about_privacy_policy.html index 5387a787..3854e29e 100644 --- a/app/src/free/assets/ru/about_privacy_policy_dark.html +++ b/app/src/free/assets/ru/about_privacy_policy.html @@ -1,5 +1,5 @@ + diff --git a/app/src/free/assets/ru/about_privacy_policy_light.html b/app/src/free/assets/ru/about_privacy_policy_light.html deleted file mode 100644 index 9f1895d2..00000000 --- a/app/src/free/assets/ru/about_privacy_policy_light.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser не собирает никакой пользовательской информации.

- - -

Google Play

-

Google Play имеет собственную политику конфиденциальности. - Google предоставляет разработчикам сводную анонимизированную информацию об установке, включающую их количество, организованную по следующим категориям.

-
    -
  • Версия Android (напр. Android 7.1)
  • -
  • Устройство (напр. Samsung Galaxy S6 [zeroflte])
  • -
  • Планшеты (напр. Tablets 10" и выше)
  • -
  • Страна (напр. Russian Federation)
  • -
  • Язык (напр. Russian)
  • -
  • Версия приложения (напр. 14)
  • -
  • Оператор (напр. Beeline - RU)
  • -
- - -

Рейтинги Google Play

-

Google Play имеет собственную политику конфиденциальности. - Google предоставляет разработчикам анонимизированные сводки следующей информации, связанной с пользовательскими рейтингами.

-
    -
  • Страна (напр. Russian Federation)
  • -
  • Язык (напр. Russian)
  • -
  • Версия приложения (напр. 14)
  • -
  • Версия Android (напр. Android 7.1)
  • -
  • Устройство (напр. Google Nexus 5X [bullhead])
  • -
  • Планшеты (напр. Tablets 10" и выше)
  • -
- - -

Отзывы Google Play

-

Google Play имеет собственную политику конфиденциальности. - Помимо имени автора отзыва, оценки и текста отзыва (все они доступны публично), Google предоставляет разработчику некоторую или всю следующую информацию.

-
    -
  • Код версии (напр. 7)
  • -
  • Имя версии (напр. 1.6)
  • -
  • Версия Android (напр. Android 5.1)
  • -
  • Устройство (напр. Galaxy S6 Edge+ [zenlte])
  • -
  • Производитель (напр. Samsung)
  • -
  • Тип устройства (напр. Phone)
  • -
  • Производитель CPU (напр. Samsung)
  • -
  • Модель CPU (напр. Exynos 7420)
  • -
  • Разрешение экрана (напр. 560 dpi)
  • -
  • Размер экрана (напр. 2560 x 1440)
  • -
  • ОЗУ (напр. 4096 MB)
  • -
  • Собственная платформа (напр. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Версия OpenGL ES (напр. 3.1)
  • -
  • Язык устройства (напр. Russian)
  • -
- - -

Реклама

-

Privacy Browser Free отображает рекламный баннер в нижней части экрана с помощью сети Google AdMob, - которая имеет собственную политику конфиденциальности. - Эта реклама не персонализируется. - AdMob отправляет анонимные отчеты разработчикам, содержащие следующую информацию.

-
    -
  • Всего показов
  • -
  • Всего кликов
  • -
  • Платформы (напр. высокопроизводительные мобильные устройства, планшеты)
  • -
  • Активность по странам
  • -
- - -

Прямая связь

-

Пользователи могут напрямую связаться со Stoutner при помощи электронной почты и комментариев на stoutner.com.

- - -

Использование информации

-

Stoutner может использовать эту информацию, как помощь в разработке Privacy Browser и сообщать о статусе проекта пользователям. - Stoutner никогда не будет продавать эту информацию или передавать ее третьей стороне, которая использовала бы ее для рекламы или маркетинга.

- -
-

Ревизия 1.7, 14 мая 2019 года

- - \ No newline at end of file diff --git a/app/src/free/assets/tr/about_permissions_dark.html b/app/src/free/assets/tr/about_permissions.html similarity index 95% rename from app/src/free/assets/tr/about_permissions_dark.html rename to app/src/free/assets/tr/about_permissions.html index 5cbf4039..3abc919b 100644 --- a/app/src/free/assets/tr/about_permissions_dark.html +++ b/app/src/free/assets/tr/about_permissions.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/free/assets/tr/about_permissions_light.html b/app/src/free/assets/tr/about_permissions_light.html deleted file mode 100644 index 4a1c6a93..00000000 --- a/app/src/free/assets/tr/about_permissions_light.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - -

Tam ağ erişimine sahip olma

-

android.permission.INTERNET

-

WebView’ın internete erişimi için gereklidir. Bu izin olmadan, Privacy Browser, “İnternet Olmadan Gizliliğinizi Koruyan Bir Tarayıcı” olacaktır.

- -

Kısayolları yükleme

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Başlatıcı masaüstüne web sayfalarının kısayollarını eklemek için gereklidir.

- -

Depolama okuma

-

android.permission.READ_EXTERNAL_STORAGE

-

Ayarları ortak klasörden içe aktarmak için gereklidir. - Android Marshmallow (API 23) versiyonunda ve daha yeni versiyonlarda bu izin verilmediğinde, Privacy Browser, uygulama klasörlerinden ayarları içe aktarır.

- -

Depolama yazma

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Ayarları ve indirilen dosyaları ortak klasörlere aktarmak için gereklidir. - Android Marshmallow (API 23) versiyonunda ve daha yeni versiyonlarda bu izin verilmediğinde, Privacy Browser, - indirilenleri uygulama klasörlerine depolar ve ayarları uygulama klasörlerine aktarır.

- -
-
-
- -

Ek olarak, Privacy Browser Ücretsiz, Firebase backend kullanarak Google'ın AdMob ağından reklamlar görüntüler. - Ücretsiz sürüm için Firebase, kaynak kod bildirim dosyasında - listelenmemiş olsalar bile aşağıdaki izinleri ilave eder.

- -

Ağ bağlantılarını görüntüle

-

android.permission.ACCESS_NETWORK_STATE

-

Reklamların, internet erişimine ne zaman sahip olup olmadığınızı bilmesine izin verir (internet erişiminiz yoksa muhtemelen reklamı tekrar yüklemeyi denemezler). - Ayrıca internete Wi-Fi, 2g, 3g, 4g vs. bağlantı şekillerinden hangisiyle bağlandığınızı da anlayabilirler.

- -

Telefonun uyku moduna geçmesini engelleme

-

android.permission.WAKE_LOCK

-

Reklamların, işlemcinin uyku moduna geçmesini ve ekranın kararmasını engellemesine izin verir. Kişisel deneyimime göre reklamların bunu yapabileceğini sanmıyorum.

- -

Play Install Referrer API

-

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

-

Diğer uygulamaların, kurulumlarının Privacy Browser Ücretsizde görüntülenen bir reklamdan başlatılıp başlatılmadığını anlamasına izin verir.

- -

Ä°nternetten veri alma

-

com.google.android.c2dm.permission.RECEIVE

-

Google'ın, öncesinde bir istek almasına gerek duymadan, AdView'e doğrudan bilgi göndermesine izin verir (buluttan cihaza iletişim).

- - \ No newline at end of file diff --git a/app/src/free/assets/tr/about_privacy_policy_light.html b/app/src/free/assets/tr/about_privacy_policy.html similarity index 95% rename from app/src/free/assets/tr/about_privacy_policy_light.html rename to app/src/free/assets/tr/about_privacy_policy.html index afcd8a65..90aaff9b 100644 --- a/app/src/free/assets/tr/about_privacy_policy_light.html +++ b/app/src/free/assets/tr/about_privacy_policy.html @@ -1,5 +1,5 @@ + diff --git a/app/src/free/assets/tr/about_privacy_policy_dark.html b/app/src/free/assets/tr/about_privacy_policy_dark.html deleted file mode 100644 index 3cdc3ae5..00000000 --- a/app/src/free/assets/tr/about_privacy_policy_dark.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser herhangi bir kullanıcı bilgisi toplamaz.

- - -

Google Play

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, aşağıdaki kategorilerce düzenlenen, indirme sayıları da dahil, anonimleştirilmiş özet kurulum bilgilerini geliştiricilere verir.

-
    -
  • Android versiyonu (örn. Android 7.1)
  • -
  • Cihaz (örn. Samsung Galaxy S6 [zeroflte])
  • -
  • Tabletler (örn. Tablets 10" ve üzeri)
  • -
  • Ülke (örn. Amerika Birleşik Devletleri)
  • -
  • Dil (örn. Ä°ngilizce [Amerika Birleşik Devletleri])
  • -
  • Uygulama versiyonu (örn. 14)
  • -
  • Telefon operatörü (örn. T-Mobile - US)
  • -
- - -

Google Play Derecelendirmeleri

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, kullanıcı değerlendirmeleriyle ilişkili aşağıdaki bilgilerin anonimleştirilmiş özetlerini geliştiricilere verir.

-
    -
  • Ülke (örn. Amerika Birleşik Devletleri)
  • -
  • Dil (örn. Ä°ngilizce)
  • -
  • Uygulama versiyonu (örn. 14)
  • -
  • Android versiyonu (örn. Android 7.1)
  • -
  • Cihaz (örn. Google Nexus 5X [bullhead])
  • -
  • Tabletler (örn. Tablets 10" ve üzeri)
  • -
- - -

Google Play Kritikleri

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, inceleme yapan kişinin ismine, değerlendirmeye ve inceleme metninine (tümü halka açıktır) ek olarak, aşağıdaki bilgilerin bir kısmını ya da tamamını geliştiricilere verir.

-
    -
  • Versiyon kodu (örn. 7)
  • -
  • Versiyon adı (örn. 1.6)
  • -
  • Android versiyonu (örn. Android 5.1)
  • -
  • Cihaz (örn. Galaxy S6 Edge+ [zenlte])
  • -
  • Üretici (örn. Samsung)
  • -
  • Cihaz tipi (örn. Telefon)
  • -
  • CPU markası (örn. Samsung)
  • -
  • CPU modeli (örn. Exynos 7420)
  • -
  • Piksel yoğunluğu (örn. 560 dpi)
  • -
  • Ekran boyutu (örn. 2560 x 1440)
  • -
  • RAM (örn. 4096 MB)
  • -
  • Native platformu (örn. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES versiyonu (örn. 3.1)
  • -
  • Cihaz dili (örn. Ä°ngilizce)
  • -
- - - <

Reklamlar

-

Privacy Browser Ücretsiz, Google'ın, kendisine özgü gizlilik politikası olan - AdMob ağını kullanarak ekranın alt kısmında bir banner reklam gösterir. - Bu reklamlar kişiselleştirilmemiş olarak ayarlanmıştır. - AdMob, geliştiricilere aşağıdaki bilgilerin anonimleştirilmiş özetlerini rapor eder.

-
    -
  • Toplam gösterimler
  • -
  • Toplam tıklamalar
  • -
  • Platformlar (örn. en üst seviye mobil cihazlar, tabletler)
  • -
  • Ülkeye göre etkinlik
  • -
- - -

Doğrudan İletişim

-

Kullanıcılar, stoutner.com üzerinden Stoutner ile doğrudan iletişime (E-posta atmak ya da yorum yapmak gibi) geçebilir.

- - -

Bilgilerin Kullanımı

-

Stoutner bu bilgileri, Privacy Browser'ın geliştirilmesine yardımcı olması ve kullanıcılarla projenin durumuyla ilgili iletişime geçmek için kullanabilir. - Stoutner asla bu bilgileri, reklam ve pazarlama için kullanacak üçüncü kişilere vermez ya da satmaz.

- -
-

Revizyon 1.7, 14 Mayıs 2019

- - \ No newline at end of file diff --git a/app/src/main/assets/css/dark_theme.css b/app/src/main/assets/css/dark_theme.css deleted file mode 100644 index 353dacce..00000000 --- a/app/src/main/assets/css/dark_theme.css +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright © 2017-2019 Soren Stoutner . - * - * This file is part of 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 . - */ - -/* Gray 850 */ -body { - background-color: #313131; - color: #BDBDBD; -} - -/* Blue 700 */ -a { - color: #1976D2; - text-decoration: none; -} - -/* Blue 900 */ -::selection { - background: #0D47A1; -} - -/* Blue 600 */ -h3 { - color: #1E88E5; -} - -/* Half of Red 900 */ -strong.red { - color: #A71919; -} - -/* Blue 400 */ -strong.blue { - color: #42A5F5; -} - -/* Blue 400 */ -item { - color: #42A5F5; - font-weight: bold; -} - -img.inline { - height: 16; - width: 16; -} - -img.title { - vertical-align: bottom; - height: 32; - width: 32; -} - -img.icon { - vertical-align: middle; - height: 32; - width: 32; -} - -img.left { - float: left; - height: 32; - width: 32; -} - -/* An image must be a block to be centered. */ -img.center { - display: block; - margin-left: auto; - margin-right: auto; - height: 720; - width: 360; -} \ No newline at end of file diff --git a/app/src/main/assets/css/light_theme.css b/app/src/main/assets/css/light_theme.css deleted file mode 100644 index 484d4bb2..00000000 --- a/app/src/main/assets/css/light_theme.css +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright © 2017-2019 Soren Stoutner . - * - * This file is part of 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 . - */ - -/* Blue 700 */ -a { - color: #1976D2; - text-decoration: none; -} - -/* Blue 900 */ -h3 { - color: #0D47A1; -} - -/* Red 900 */ -strong.red { - color: #B71C1C; -} - -/* Blue 800 */ -strong.blue { - color: #1565C0; -} - -/* Blue 700 */ -item { - color: #1976D2; - font-weight: bold; -} - -img.inline { - height: 16; - width: 16; -} - -img.title { - vertical-align: bottom; - height: 32; - width: 32; -} - -img.icon { - vertical-align: middle; - height: 32; - width: 32; -} - -img.left { - float: left; - height: 32; - width: 32; -} - -/* An image must be a block to be centered. */ -img.center { - display: block; - margin-left: auto; - margin-right: auto; - height: 720; - width: 360; -} \ No newline at end of file diff --git a/app/src/main/assets/css/theme.css b/app/src/main/assets/css/theme.css new file mode 100644 index 00000000..ca403a07 --- /dev/null +++ b/app/src/main/assets/css/theme.css @@ -0,0 +1,142 @@ +/* + * Copyright © 2017-2020 Soren Stoutner . + * + * This file is part of 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 . + */ + +/* Dark colors. */ +@media (prefers-color-scheme: dark) { + body { + color: #C1C1C1; /* Gray 350 */ + background-color: #303030; /* Gray 860 */ + } +} + +/* Hyperlinks. */ +a { + color: #1976D2; /* Blue 700 */ + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + a { + color: #5785C5; /* Violet 700 */ + } +} + +/* Headers. */ +h3 { + color: #0D47A1; /* Blue 900 */ +} + +@media (prefers-color-scheme: dark) { + h3 { + color: #8AB4F8; /* Violet 500 */ + } +} + +/* Red bold text */ +strong.red { + color: #B71C1C; /* Red 900. */ +} + +@media (prefers-color-scheme: dark) { + strong.red { + color: #930606; /* Red 1100. */ + } +} + +/* Blue bold text */ +strong.blue { + color: #1565C0; /* Blue 800. */ +} + +/* List items. */ +item { + color: #1565C0; /* Blue 800. */ + font-weight: bold; +} + +/* Header images do not allow the icon to be themed. */ +img.header { + vertical-align: bottom; + height: 32; + width: 32; +} + +/* Header SVGs allow the icon to be themed. */ +svg.header { + vertical-align: bottom; + height: 32; + width: 32; + fill: #0D47A1; /* Blue 900 */ +} + +@media (prefers-color-scheme: dark) { + svg.header { + fill: #8AB4F8; /* Violet 500 */ + } +} + +/* Left aligned images do not allow the icon to be themed. */ +img.left { + float: left; + height: 32; + width: 32; +} + +/* Left aligned SVGs allow the icon to be themed. */ +svg.left { + float: left; + height: 32; + width: 32; + fill: #000000; /* Black */ +} + +@media (prefers-color-scheme: dark) { + svg.left { + fill: #FFFFFF; /* White */ + } +} + +/* Inline images. */ +img.inline { + height: 16; + width: 16; +} + +/* SVG icons. */ +svg.icon { + vertical-align: middle; + height: 32; + width: 32; + fill: #000000; /* Black */ +} + +@media (prefers-color-scheme: dark) { + svg.icon { + fill: #FFFFFF; /* White */ + } +} + +/* Centered screenshot images. An image must be a block to be centered. */ +img.center { + display: block; + margin-left: auto; + margin-right: auto; + height: 720; + width: 360; +} \ No newline at end of file diff --git a/app/src/main/assets/de/about_changelog_dark.html b/app/src/main/assets/de/about_changelog.html similarity index 99% rename from app/src/main/assets/de/about_changelog_dark.html rename to app/src/main/assets/de/about_changelog.html index 2d76163c..7eb2960f 100644 --- a/app/src/main/assets/de/about_changelog_dark.html +++ b/app/src/main/assets/de/about_changelog.html @@ -26,7 +26,10 @@ - + + + + diff --git a/app/src/main/assets/de/about_changelog_light.html b/app/src/main/assets/de/about_changelog_light.html deleted file mode 100644 index 9dfe7549..00000000 --- a/app/src/main/assets/de/about_changelog_light.html +++ /dev/null @@ -1,694 +0,0 @@ - - - - - - - - - - -

3.5.1 (version code 51)

-

28. August 2020 - Mindest-API 19, Ziel-API 29

-
    -
  • Fehler behoben, durch den neue Intents (Aufrufe aus anderen Apps) nicht ausgeführt wurden, - wenn Privacy Browser vom Betriebssystem im Hintergrund geschlossen wurde.
  • -
  • Fehler behoben, durch den die App nicht korrekt initialisiert wurde, - wenn das App-Theme gegenteilig zum Betriebsystem-Theme eingestellt wurde.
  • -
- -

3.5 (version code 50)

-

18. August 2020 - Mindest-API 19, Ziel-API 29

- - -

3.4.1 (version code 49)

-

1. April 2020 - Mindest-API 19, Ziel-API 29

- - -

3.4 (version code 48)

-

28. März 2020 - Mindest-API 19, Ziel-API 29

- - -

3.3 (version code 47)

-

3. Januar 2020 - Mindest-API 19, Ziel-API 29

- - -

3.2 (version code 46)

-

20. Juli 2019 - Mindest-API 19, Ziel-API 28

- - -

3.1 (version code 45)

-

27. Mai 2019 - Mindest-API 19, Ziel-API 28

- - -

3.0.1 (version code 44)

-

2. Mai 2019 - Mindest-API 19, Ziel-API 28

- - -

3.0 (version code 43)

-

26. April 2019 - Mindest-API 19, Ziel-API 28

-
    -
  • Tabbed Browsing hinzugefügt.
  • -
  • Bug behoben, der dazu führte, dass die Webview-Anzeige unten abgeschnitten wurde, wenn das Scrollen der App-Leiste deaktiviert wurde.
  • -
  • Bug behoben, der dazu führte, dass Privacy Browser neu startete wenn eine Bluetooth-Tastatur verbunden oder getrennt wurde.
  • -
  • Aktualisierte deutsche Übersetzung von Bernhard G. Keller.
  • -
  • Aktualisierte italienische Übersetzung von Francesco Buratti.
  • -
  • Aktualisierte russische Übersetzung.
  • -
  • Aktualisierte spanische Übersetzung von Jose A. León.
  • -
  • Teilweise türkische Übersetzung.
  • -
- -

2.17.1 (version code 42)

-

5. März 2019 - Mindest-API 19, Ziel-API 28

-
    -
  • Fix eines Bugs, der Privacy Browser bei Bookmarks von Seiten mit sehr grossen Fav-Icons abstürzen liess.
  • -
  • Privacy Browser kann nun auch auf SD-Karten verschoben werden.
  • -
- -

2.17 (version code 41)

-

27. Februar 2019 - Mindest-API 19, Ziel-API 28

- - -

2.16 (version code 40)

-

31. Januar 2019 - Mindest-API 19, Ziel-API 28

- - -

2.15.1 (version code 39)

-

27. Dezember 2018 - Mindest-API 19, Ziel-API 28

- - -

2.15 (version code 38)

-

24. Dezember 2018 - Mindest-API 19, Ziel-API 28

- - -

2.14 (version code 37)

-

8. Dezember 2018 - Mindest-API 19, Ziel-API 28

- - -

2.13 (version code 36)

-

29. Oktober 2018 - Mindest-API 19, Ziel-API 28

- - -

2.12 (version code 35)

-

31. Juli 2018 - Mindest-API 19, Ziel-API 27

- - -

2.11 (version code 34)

-

10. Juli 2018 - Mindest-API 19, Ziel-API 27

- - -

2.10 (version code 33)

-

24. Mai 2018 - Mindest-API 19, Ziel-API 27

- - -

2.9 (version code 32)

-

9. Mai 2018 - Mindest-API 19, Ziel-API 27

- - -

2.8.1 (version code 31)

-

1. März 2018 - Mindest-API 19, Ziel-API 27

- - -

2.8 (version code 30)

-

22. Februar 2018 - Mindest-API 19, Ziel-API 27

- - -

2.7.2 (version code 29)

-

22. November 2017 - Mindest-API 19, Ziel-API 26

- - -

2.7.1 (version code 28)

-

9. November 2017 - Mindest-API 19, Ziel-API 26

- - -

2.7 (version code 27)

-

7. November 2017 - Mindest-API 19, Ziel-API 26

-
    -
  • Add a bookmarks drawer that is accessed by sliding from the right.
  • -
  • Prevent Night Mode from flashing a white background when loading new pages.
  • -
  • Update the user agents.
  • -
  • Bump target API to 26 (Android Oreo, 8.0.0).
  • -
  • Aktualisierte italienische Übersetzung von Francesco Buratti.
  • -
  • Aktualisierte spanische Übersetzung von Jose A. León.
  • -
- -

2.6 (version code 26)

-

18. September 2017 - Mindest-API 19, Ziel-API 25

- - -

2.5 (version code 25)

-

26. August 2017 - Mindest-API 19, Ziel-API 25

- - -

2.4 (version code 24)

-

23. Juni 2017 - Mindest-API 19, Ziel-API 25

- - -

2.3 (version code 23)

-

26. Mai 2017 - Mindest-API 19, Ziel-API 25

- - -

2.2 (version code 22)

-

27. April 2017 - Mindest-API 19, Ziel-API 25

- - -

2.1 (version code 21)

-

25. März 2017 - Mindest-API 19, Ziel-API 25

- - -

2.0.1 (version code 20)

-

21. März 2017 - Mindest-API 19, Ziel-API 25

- - -

2.0 (version code 19)

-

16. März 2017 - Mindest-API 19, Ziel-API 25

- - -

1.15 (version code 18)

-

11. Februar 2017 - Mindest-API 19, Ziel-API 25

- - -

1.14.1 (version code 17)

-

4. Januar 2017 - Mindest-API 19, Ziel-API 25

- - -

1.14 (version code 16)

-

26. Dezember 2016 - Mindest-API 19, Ziel-API 25

- - -

1.13 (version code 15)

-

28. November 2016 - Mindest-API 19, Ziel-API 24

- - -

1.12 (version code 14)

-

9. November 2016 - Mindest-API 19, Ziel-API 24

- - -

1.11 (version code 13)

-

22. Oktober 2016 - Mindest-API 19, Ziel-API 24

-
    -
  • Ziel-API auf 24 hochgestuft, um Multi-Window auf Android Nougat zu ermöglichen.
  • -
  • Fehler behoben, der seit Version 1.10 exisiterte und große Auslastung der CPU ohne wirklichen Grund verursachte.
  • -
  • Funktion zum Drucken hinzugefügt.
  • -
  • Fehler bezüglich Dateidownloads auf KitKat und Lollipop behoben.
  • -
  • Deutsche Übersetzung durch Aaron Gerlach fur die neuen Funktionen aktualisiert.
  • -
- -

1.10 (version code 12)

-

15. September 2016 - Mindest-API 19, Ziel-API 23

-
    -
  • Unterstützung für TOR Orbot Proxy hinzugefügt.
  • -
  • Do Not Track-Option hinzugefügt.
  • -
  • Einen Download-Dialog hinzugefügt, mit dem der User den Dateinamen ändern kann, - bevor der Download startet.
  • -
  • Optionale zusätzliche Funktionsbuttons für Cookies, DOM-Speicher und Formulardaten hinzugefügt.
  • -
  • Aktualisierung der wählbaren User Agents; Safari auf iOS und OS X hinzugefügt.
  • -
  • StartPage und Qwant zur Liste der Suchmaschinen hinzugefügt.
  • -
  • Deutsche Übersetzung durch Aaron Gerlach fur die neuen Funktionen aktualisiert.
  • -
- -

1.9.1 (version code 11)

-

27. August 2016 - Mindest-API 19, Ziel-API 23

-
    -
  • Bilder-Verknüpfungen zu relativen Pfaden geändert, sodass Privacy Browser in F-Droid geladen wird.
  • -
- -

1.9 (version code 10)

-

26. August 2016 - Mindest-API 19, Ziel-API 23

- - -

1.8 (version code 9)

-

16. Juli 2016 - Mindest-API 19, Ziel-API 23

- - -

1.7 (version code 8)

-

16. Juni 2016 - Mindest-API 19, Ziel-API 23

- - -

1.6 (version code 7)

-

11. Mai 2016 - Mindest-API 15, Ziel-API 23

- - -

1.5 (version code 6)

-

5. Mai 2016 - Mindest-API 15, Ziel-API 23

-
    -
  • Option hinzugefügt, mit der man das "Herunterziehen zum Aktualisieren" deaktivieren kann, damit bestimmte Websites wie Google Maps korrekt funktionieren.
  • -
- -

1.4 (version code 5)

-

28. April 2016 - Mindest-API 15, Ziel-API 23

-
    -
  • Steuerung für Drittanbieter-Cookies hinzugefügt.
  • -
  • Fehlerbehebung für Vollbild-Videowiedergabe.
  • -
- -

1.3 (version code 4)

-

7. April 2016 - Mindest-API 15, Ziel-API 23

- - -

1.2 (version code 3)

-

23. März 2016 - Mindest-API 15, Ziel-API 23

- - -

1.1 (version code 2)

-

9. März 2016 - Mindest-API 10, Ziel-API 23

-
    -
  • Die Standard- und die kostenlosen Varianten getrennt, damit die App korrekt in F-Droid gezeigt wird.
  • -
- -

1.0 (version code 1)

-

24. Februar 2016 - Mindest-API 10, Ziel-API 23

-
    -
  • Option zum (De-)Aktivieren von Javascript, DOM-Speicher und Cookies hinzugefügt.
  • -
  • Standardmäßige Aktivierung von Javascript, DOM-Speicher und Cookies gesetzt.
  • -
  • DOM-Speicher und Cookies leerbar.
  • -
  • Shortcuts für Launcher hinzugefügt.
  • -
  • Mehr Funktionalität des Download-Managers.
  • -
  • Vorwärts und zurück navigieren.
  • -
  • URLs ausschneiden, kopieren und einsetzen.
  • -
  • URLs teilen.
  • -
  • Homepage bestimmen.
  • -
  • URL-Leiste scrollbar.
  • -
  • WebView-Position beim Rotieren des Bildschirms angepasst.
  • -
  • Herunterziehen zum Aktualisieren im WebView.
  • -
  • Videos im Vollbild-Modus (Javascript muss aktiviert sein).
  • -
  • Leeren und Verlassen Menü-Option.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/de/about_contributors_light.html b/app/src/main/assets/de/about_contributors.html similarity index 90% rename from app/src/main/assets/de/about_contributors_light.html rename to app/src/main/assets/de/about_contributors.html index a8a3a6d0..ee884cbf 100644 --- a/app/src/main/assets/de/about_contributors_light.html +++ b/app/src/main/assets/de/about_contributors.html @@ -24,7 +24,10 @@ - + + + + diff --git a/app/src/main/assets/de/about_contributors_dark.html b/app/src/main/assets/de/about_contributors_dark.html deleted file mode 100644 index 326c2177..00000000 --- a/app/src/main/assets/de/about_contributors_dark.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - -

Leitender Entwickler

-

Privacy Browser wird primär von Soren Stoutner entwickelt.

- -

Weitere Entwickler

- Thomas Jensen
- Hendrik Knackstedt - -

Mitwirkende

- Bernhard G. Keller: Deutsch
- Thiago Nazareno Conceição Silva de Jesus: Brasilianisches Portugiesisch
- Kévin LE FLOHIC: Französisch
- Francesco Buratti: Italienisch
- Jose A. León: Spanisch - -

Frühere Mitwirkende

- Stefan Erhardt: Deutsch
- Aaron Gerlach: Deutsch - -
-
-

Mitwirkung ist willkommen in Form von Code und Übersetzung.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/about_licenses_light.html b/app/src/main/assets/de/about_licenses.html similarity index 89% rename from app/src/main/assets/de/about_licenses_light.html rename to app/src/main/assets/de/about_licenses.html index 734d04b2..d42d4098 100644 --- a/app/src/main/assets/de/about_licenses_light.html +++ b/app/src/main/assets/de/about_licenses.html @@ -23,7 +23,10 @@ - + + + + @@ -62,97 +65,97 @@ The modified file is released under the GPLv3+ license.

Icons:

-

- are derived from security and language, +

+ are derived from security and 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.

-

is derived from elements of folder and exit_to_app, +

is derived from elements of folder and exit_to_app, which are part of the Android Material icon set and are released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from elements of bookmark and create_new_folder, which are part of the +

is derived from elements of bookmark and create_new_folder, which are part of the Android Material icon set and are released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from create_new_folder, +

is derived from create_new_folder, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from exit_to_app, which is part of the Android Material icon set +

is derived from exit_to_app, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from compare, which is part of the Android Material icon set +

is derived from compare, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from sort, which is part of the Android Material icon set +

is derived from sort, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2019 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

cookie was created by Google. +

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 information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/de/about_licenses_dark.html b/app/src/main/assets/de/about_licenses_dark.html deleted file mode 100644 index 5234e446..00000000 --- a/app/src/main/assets/de/about_licenses_dark.html +++ /dev/null @@ -1,1068 +0,0 @@ - - - - - - - - - - -

Copyright:

-

Privacy Browser ist copyright © 2015-2020 von Soren Stoutner.

- -

Lizenz:

-

Privacy Browser ist veröffentlicht unter der GPLv3+ Lizenz. The full text of the license is below. - The source code is available from git.stoutner.com.

- -

Blocklists:

-

EasyList and EasyPrivacy - are dual licensed under the GPLv3+ - and the Creative Commons Attribution-ShareAlike 3.0+ Unported licenses. - Privacy Browser incorporates them using the GPLv3+ option.

- -

Fanboy’s Annoyance List and Fanboy’s Social Blocking List - are released under the Creative Commons Attribution 3.0 Unported license, - which is compatible with the GPLv3+. The lists are included unchanged in Privacy Browser.

- -

More information about the blocklists can be found on the EasyList website.

- -

Bibliotheken:

-

Privacy Browser baut auf den AndroidX-Bibliotheken, - den Kotlin-Bibliotheken - und Code des Google Material Maven repository, - auf, welche unter der Apache Lizenz 2.0 veröffentlicht werden.

- -

Die kostenlose Variante von Privacy Browser verwendet Firebase Ads, - welche unter der Android Software Development Kit Lizenz veröffentlicht werden.

- -

Classes:

-

com.stoutner.privacybrowser.views.CheckedLinearLayout is a modified version of a class contained in the - Android Camera source code. - The original file was released under the Apache License 2.0. - The modified file is released under the GPLv3+ license.

- -

Icons:

-

- are derived from security and 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.

-

is derived from elements of folder and exit_to_app, which are part of the - Android Material icon set and are released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from elements of bookmark and create_new_folder, which are part of the - Android Material icon set and are released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from create_new_folder, - which is part of the Android Material icon set and is released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from exit_to_app, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from compare, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from sort, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2019 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 information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Offizielle deutsche Übersetzung der GNU General Public License

- -

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others’ Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/de/about_links_light.html b/app/src/main/assets/de/about_links.html similarity index 71% rename from app/src/main/assets/de/about_links_light.html rename to app/src/main/assets/de/about_links.html index eb21ce41..b36d2ae3 100644 --- a/app/src/main/assets/de/about_links_light.html +++ b/app/src/main/assets/de/about_links.html @@ -1,5 +1,5 @@ +

Websites

-

+

Neuigkeiten

-

+

Roadmap

-

+

Bug-Tracker und Feature-Anfragen

-

+

Forum

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/de/about_links_dark.html b/app/src/main/assets/de/about_links_dark.html deleted file mode 100644 index ceff2b4d..00000000 --- a/app/src/main/assets/de/about_links_dark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - -

Websites

- -

- Neuigkeiten

- -

- Roadmap

- -

- Bug-Tracker und Feature-Anfragen

- -

- Forum

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/de/about_permissions_dark.html b/app/src/main/assets/de/about_permissions.html similarity index 90% rename from app/src/main/assets/de/about_permissions_dark.html rename to app/src/main/assets/de/about_permissions.html index dbda03a0..bd90da57 100644 --- a/app/src/main/assets/de/about_permissions_dark.html +++ b/app/src/main/assets/de/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/de/about_permissions_light.html b/app/src/main/assets/de/about_permissions_light.html deleted file mode 100644 index ecaf7b57..00000000 --- a/app/src/main/assets/de/about_permissions_light.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - -

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.

- -

Speicher lesen

-

android.permission.READ_EXTERNAL_STORAGE

-

Benötigt, um Einstellungen aus öffentlichen Ordnern zu importieren. Unter Android Marshmallow (API 23) und neuer kann Privacy Browser Einstellungen nur aus seinem eigenen Ordner importieren, wenn diese Berechtigung nicht erteilt wird.

- -

Speicher schreiben

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Benötigt, um Einstellungen und Downloads in öffentlichen Ordnern zu speichern. - Unter Android Marshmallow (API 23) und neuer kann Privacy Browser Einstellungen und Downloads nur in seinem eigenen Ordner speichern, wenn diese Berechtigung nicht erteilt wird.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/about_privacy_policy_light.html b/app/src/main/assets/de/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/de/about_privacy_policy_light.html rename to app/src/main/assets/de/about_privacy_policy.html index dccd9447..43e6bcb4 100644 --- a/app/src/main/assets/de/about_privacy_policy_light.html +++ b/app/src/main/assets/de/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -86,6 +89,6 @@ Stoutner wird die Informationen niemals verkaufen oder an Dritte weitergeben, welche diese für Anzeigen oder Marketing nutzen.


-

Revision 1.6, 22. Mai 2018

+

Revision 1.7, 14. Mai 2019

\ No newline at end of file diff --git a/app/src/main/assets/de/about_privacy_policy_dark.html b/app/src/main/assets/de/about_privacy_policy_dark.html deleted file mode 100644 index 62a05e73..00000000 --- a/app/src/main/assets/de/about_privacy_policy_dark.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser sammelt keinerlei Benutzer-Informationen.

- - -

Google Play

-

Google Play hat seine eigene Datenschutzerklärung. - Google stellt Entwicklern anonymisierte Installations-Informationen inklusive der Anzahl der Installationen unterteilt in die folgenden Kategorien bereit:

-
    -
  • Android-Version (z.B. Android 7.1)
  • -
  • Gerät (z.B. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablets (z.B. 10"-Tablet oder höher)
  • -
  • Land (z.B. USA)
  • -
  • Sprache (z.B. Englisch [USA])
  • -
  • App-Version (z.B. 14)
  • -
  • Mobilfunk-Anbieter (z.B. T-Mobile - US)
  • -
- - -

Google Play Bewertungen

-

Google Play hat seine eigene Datenschutzerklärung. - Google stellt Entwicklern folgende anonymisierte Installations-Informationen bezüglich der Bewertungen bereit:

-
    -
  • Land (z.B. USA)
  • -
  • Sprache (z.B. Englisch)
  • -
  • App-Version (z.B. 14)
  • -
  • Android-Version (z.B. Android 7.1)
  • -
  • Gerät (z.B. Google Nexus 5X [bullhead])
  • -
  • Tablets (z.B. 10"-Tablet oder höher)
  • -
- - -

Google Play Rezensionen

-

Google Play hat seine eigene Datenschutzerklärung. - Zusätzlich zum Namen des Rezensenten, der Bewertung und dem Text der Rezension (welche alle öffentlich zugänglich sind), stellt Google dem Entwickler einige oder alle der folgenden Informationen zur Verfügung:

-
    -
  • Versions-Code (z.B. 7)
  • -
  • Versions-Name (z.B. 1.6)
  • -
  • Android-Version (z.B. Android 5.1)
  • -
  • Gerät (z.B. Galaxy S6 Edge+ [zenlte])
  • -
  • Hersteller (z.B. Samsung)
  • -
  • Gerätetyp (z.B. Mobiltelefon)
  • -
  • CPU-Fabrikat (z.B. Samsung)
  • -
  • CPU-Model (z.B. Exynos 7420)
  • -
  • Bildschirm-Auflösung (z.B. 560 dpi)
  • -
  • Bildschirm-Grösse (z.B. 2560 x 1440)
  • -
  • RAM (z.B. 4096 MB)
  • -
  • Native Plattform (z.B. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES Version (z.B. 3.1)
  • -
  • Geräte-Sprache (z.B. Englisch)
  • -
- - -

Direkte Kommunication

-

Benutzer können z.B. per Email und Kommentaren auf stoutner.com direkt mit Stoutner Kontakt aufnehmen.

- -

Daten-Nutzung

-

Stoutner kann diese Informationen nutzen, um die Entwicklung von Privacy Browser zu unterstützen und den Status des Projekts an Benutzer zu melden. - Stoutner wird die Informationen niemals verkaufen oder an Dritte weitergeben, welche diese für Anzeigen oder Marketing nutzen.

- -
-

Revision 1.6, 22. Mai 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_domain_settings_light.html b/app/src/main/assets/de/guide_domain_settings.html similarity index 73% rename from app/src/main/assets/de/guide_domain_settings_light.html rename to app/src/main/assets/de/guide_domain_settings.html index abd39a41..ffabdebc 100644 --- a/app/src/main/assets/de/guide_domain_settings_light.html +++ b/app/src/main/assets/de/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Sicheres Internet-Surfen

+

Sicheres Internet-Surfen

Privacy Browser’s Vorgabe ist das Surfen ohne JavaScript, Cookies und DOM-Speicher. Allerdings gibt es Websites, die nur korrekt funktionieren, wenn eine oder mehrere dieser Funktionen aktiviert sind. Sie können daher eine oder mehrere dieser Funktionen automatisch aktivieren, wenn Sie eine solche Seite (Domain) besuchen.

-

+

Wenn Sie ein Seite besuchen, für die zuvor bereits entsprechende Einstellungen getätigt wurden, wird der Hintergrund der URL-Textbox grün dargestellt.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/de/guide_domain_settings_dark.html b/app/src/main/assets/de/guide_domain_settings_dark.html deleted file mode 100644 index 2c0f2322..00000000 --- a/app/src/main/assets/de/guide_domain_settings_dark.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Sicheres Internet-Surfen

- -

Privacy Browser’s Vorgabe ist das Surfen ohne JavaScript, Cookies und DOM-Speicher. - Allerdings gibt es Websites, die nur korrekt funktionieren, wenn eine oder mehrere dieser Funktionen aktiviert sind. - Sie können daher eine oder mehrere dieser Funktionen automatisch aktivieren, wenn Sie eine solche Seite (Domain) besuchen.

- -

- -

Wenn Sie ein Seite besuchen, für die zuvor bereits entsprechende Einstellungen getätigt wurden, wird der Hintergrund der URL-Textbox grün dargestellt.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_javascript_light.html b/app/src/main/assets/de/guide_javascript.html similarity index 85% rename from app/src/main/assets/de/guide_javascript_light.html rename to app/src/main/assets/de/guide_javascript.html index e85c348f..11e56059 100644 --- a/app/src/main/assets/de/guide_javascript_light.html +++ b/app/src/main/assets/de/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript ist mächtig

+

JavaScript ist mächtig

In den frühen Tagen des Internets waren Websites statisch, zeigten also nur Text und Bilder, welche auf dem Bildschirm sichtbar sind, veränderten sich oder interagierten aber nicht. Natürlich passierte auf solch statischen Websites nicht viel Interessantes. Viele verschiedene Technologien wurden für dynamische Websites entwickelt. Javascript war eine davon.

@@ -36,7 +39,7 @@

Javascript ist eine Programmiersprache. Viele Webserver hosten in Javascript geschriebene Programme, welche als Teil der Website an die abrufenden Geräte gesandt werden. Das Gerät führt die Skripts dann auf dem lokalen Gerät aus und folgt den Anweisungen des Programms, um beispielsweise Bilder zu animieren, Menüs zu öffnen und andere derartige Dinge.

-

JavaScript ist gefährlich

+

JavaScript ist gefährlich

Natürlich birgt das Konzept von willkürlich ausgeführten Programmen aus einer Website heraus auch ein großes Gefahrenprotenzial. Also werden Limitierungen in Javascript gesetzt, die etwa Viren verhindern sollen, jedoch nicht immer wirksam sind. @@ -44,13 +47,13 @@ einer Website die Beispiele für von einem Gerät produzierten Informationen bietet, wenn Javascript auf einem Gerät läuft. Browser Leaks ist eine andere gute Quelle.

-

+

Zum Schutz der Privatsphäre wäre es ideal, das Web ohne Javascript zu nutzen. Jedoch benötigen manche Websites legitimerweise JavaScript, um ihre Zwecke zu erfüllen und andere funktionieren nicht korrekt ohne Javascript, selbst wenn sie dazu umprogrammiert werden könnten. Privacy Browser geht auf diese Problematik ein und macht es einfach, Javascript zu (de-)aktivieren. Ein Knopfdruck auf das Privatsphäre-Schild wechselt zwischen blau - oder gelb (beide zeigen an, dass - JavaScript aus ist) und rot (JavaScript aktiviert) und aktualisiert die Website. + oder gelb (beide zeigen an, dass + JavaScript aus ist) und rot (JavaScript aktiviert) und aktualisiert die Website. Der Vergleich der verschiedenen Informationen, die webkay mit und ohne Javascript sammeln kann, ist sehr informativ.

Im Internet ohne Javascript unterwegs zu sein oder dieses nur bei Bedarf zu aktivieren, ist ein daher wichtiger Schritt, um die Privatsphäre zu schützen. diff --git a/app/src/main/assets/de/guide_javascript_dark.html b/app/src/main/assets/de/guide_javascript_dark.html deleted file mode 100644 index 24829871..00000000 --- a/app/src/main/assets/de/guide_javascript_dark.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - -

JavaScript ist mächtig

- -

In den frühen Tagen des Internets waren Websites statisch, zeigten also nur Text und Bilder, welche auf dem Bildschirm sichtbar sind, veränderten sich oder interagierten aber nicht. - Natürlich passierte auf solch statischen Websites nicht viel Interessantes. Viele verschiedene Technologien wurden für dynamische Websites entwickelt. Javascript war eine davon.

- -

Javascript ist eine Programmiersprache. Viele Webserver hosten in Javascript geschriebene Programme, welche als Teil der Website an die abrufenden Geräte gesandt werden. - Das Gerät führt die Skripts dann auf dem lokalen Gerät aus und folgt den Anweisungen des Programms, um beispielsweise Bilder zu animieren, Menüs zu öffnen und andere derartige Dinge.

- -

JavaScript ist gefährlich

- -

Natürlich birgt das Konzept von willkürlich ausgeführten Programmen aus einer Website heraus auch ein großes Gefahrenprotenzial. - Also werden Limitierungen in Javascript gesetzt, die etwa Viren verhindern sollen, jedoch nicht immer wirksam sind. - Das Bild unten zeigt einen Screenshot von webkay, - einer Website die Beispiele für von einem Gerät produzierten Informationen bietet, wenn Javascript auf einem Gerät läuft. - Browser Leaks ist eine andere gute Quelle.

- -

- -

Zum Schutz der Privatsphäre wäre es ideal, das Web ohne Javascript zu nutzen. Jedoch benötigen manche Websites legitimerweise - JavaScript, um ihre Zwecke zu erfüllen und andere funktionieren nicht korrekt ohne Javascript, selbst wenn sie dazu umprogrammiert werden könnten. - Privacy Browser geht auf diese Problematik ein und macht es einfach, Javascript zu (de-)aktivieren. Ein Knopfdruck auf das Privatsphäre-Schild wechselt zwischen blau - oder gelb (beide zeigen an, dass - JavaScript aus ist) und rot (JavaScript aktiviert) und aktualisiert die Website. - Der Vergleich der verschiedenen Informationen, die webkay mit und ohne Javascript sammeln kann, ist sehr informativ.

- -

Im Internet ohne Javascript unterwegs zu sein oder dieses nur bei Bedarf zu aktivieren, ist ein daher wichtiger Schritt, um die Privatsphäre zu schützen. - Darüber hinaus werden von den meisten modernen Websites nervige Werbebanner und und überflüssiger Müll mit Javascript geladen. - Wird Javascript deaktiviert, laden Websites daher meist wesentlich schneller, brauchen weniger Datenvolumen und CPU-Leistung, was auch die Lebenszeit der Batterien verlängert.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_local_storage_light.html b/app/src/main/assets/de/guide_local_storage.html similarity index 90% rename from app/src/main/assets/de/guide_local_storage_light.html rename to app/src/main/assets/de/guide_local_storage.html index a6cd9d5c..04d3b5a6 100644 --- a/app/src/main/assets/de/guide_local_storage_light.html +++ b/app/src/main/assets/de/guide_local_storage.html @@ -1,5 +1,5 @@ + -

Erstanbieter-Cookies

+

Erstanbieter-Cookies

Cookies können in zwei Typen unterteilt werden: Erstanbieter-Cookies sind Cookies, die von der aktuell besuchten Website gesetzt werden.

@@ -43,9 +46,9 @@

Nahezu alle Webseiten, bei denen eine Anmeldung notwendig ist, nutzen Erstanbieter-Cookies für den Anmeldevorgang. Damit wird sichergestellt, dass nur der angemeldete Benutzer Zugang zu den entsprechenden Informationen hat. Dies ist meiner Meinung nach eine der wenigen legitimen Verwendungen von Cookies.

-

Wenn Erstanbieter-Cookies aktiviert sind, aber Javascript deaktiviert, ist das Privatsphäre-Icon als Warnung gelb .

+

Wenn Erstanbieter-Cookies aktiviert sind, aber Javascript deaktiviert, ist das Privatsphäre-Icon als Warnung gelb .

-

Drittanbieter-Cookies

+

Drittanbieter-Cookies

Drittanbieter-Cookies werden von Teilen einer Website gesetzt, die von einem anderen Server als dem aktuell besuchten geladen werden. Beispielsweise laden viele Websites Werbungen von einem Drittanbieter-Broker wie Googles Ad Sense. @@ -74,14 +77,14 @@ Daher werden auf diesen Geräten auch Drittanbieter-Cookies erlaubt, wenn Erstanbieter-Cookies zugelassen werden.

-

DOM-Speicher

+

DOM-Speicher

DOM-Speicher (Document Object Model-Speicher) - auch bekannt als "Web Storage" - ist ein andere Art, mit der Websites Informationen speichern können. Während der gesamte Speicherplatz für Cookies einer Webseite auf maximal 4 Kilobytes begrenzt ist, können im DOM-Speicher Megabytes pro Seite gespeichert werden - diese Art der Speicherung ist daher gewissermassen Cookies auf Steroiden. Da der DOM-Speicher jedoch Javascript benötigt um Daten zu schreiben oder zu lesen, kann er nicht aktiviert werden, solange nicht auch JavaScript aktiviert ist.

-

Formulardaten

+

Formulardaten

Formulardaten umfassen Informationen, die in Web-Formulare eingetippt werden, wie etwa Namen, Adressen, Telefonnummern, usw. Diese werden in Drop-Down-Listen angezeigt, wenn die betreffenden Seiten später wieder aufgerufen werden. diff --git a/app/src/main/assets/de/guide_local_storage_dark.html b/app/src/main/assets/de/guide_local_storage_dark.html deleted file mode 100644 index a31c0fca..00000000 --- a/app/src/main/assets/de/guide_local_storage_dark.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - -

Erstanbieter-Cookies

- -

Cookies können in zwei Typen unterteilt werden: Erstanbieter-Cookies sind Cookies, die von der aktuell besuchten Website gesetzt werden.

- -

Mit solchen Erstanbieter-Cookies können Websites z.B. Informationen auf einem Computer speichern, um diese bei späteren Aufrufen derselben Seite wieder zu verwenden. - Zum Beispiel kann eine Internet-Seite, die das Wetter anzeigt, den Benutzer nach seiner Postleitzahl fragen und diese in einem Cookie speichern. - Beim nächsten Besuch der Website wird dem Benutzer dann automatisch das Wetter für diese Postleitzahl/Region angezeigt, ohne dass der Benutzer diese erneut eingeben muss.

- -

Wie viele anderen Dingen im Internet werden solche Cookies jedoch mittlerweile auch für Zwecke missbraucht, die Website-Besucher normalerweise nicht gestatten würden, wenn sie davon wüssten. - Zum Beispiel können Websites eindeutige Kennzeichen oder Seriennummern in Cookies speichern. - Jedes Mal wenn der Benutzer dann mit seinem Gerät diese Website aufruft, können dessen Bewegungen mit dem Profil dieser Seriennummer verknüpft werden, - auch wenn dem Gerät inzwischen eine andere IP-Adresse zugewiesen wurde. So entstehen umfangreiche Profile über die Vorlieben von Website-Besuchern.

- -

Nahezu alle Webseiten, bei denen eine Anmeldung notwendig ist, nutzen Erstanbieter-Cookies für den Anmeldevorgang. - Damit wird sichergestellt, dass nur der angemeldete Benutzer Zugang zu den entsprechenden Informationen hat. Dies ist meiner Meinung nach eine der wenigen legitimen Verwendungen von Cookies.

- -

Wenn Erstanbieter-Cookies aktiviert sind, aber Javascript deaktiviert, ist das Privatsphäre-Icon als Warnung gelb .

- -

Drittanbieter-Cookies

- -

Drittanbieter-Cookies werden von Teilen einer Website gesetzt, die von einem anderen Server als dem aktuell besuchten geladen werden. - Beispielsweise laden viele Websites Werbungen von einem Drittanbieter-Broker wie Googles Ad Sense. - Jedes Mal wenn die Website lädt, fragt diese bei dem Werbe-Broker an, dass er Werbung zeigen soll. - Der Werbe-Broker analysiert jegliche information, die er über den Nutzer hat, vergleicht diese mit dem aktuell gezahlten Satz der werbenden Firmen, - die die Werbung platziert haben wollen und wählt die anzuzeigenden Werbungen aus. - Der Bereich der Website, auf dem die Werbung angezeigt wird, wird vom Drittanbieter-Broker statt von der eigentlich besuchten Website geladen.

- -

Weil die meisten Werbungen im Internet von ein paar wenigen Brokern betrieben werden, hat es nicht lange gedauert, bis diese gemerkt haben, - dass sie einfach ein Tracking-Cookie auf dem Gerät des Benutzers hinterlassen können, um immer Bescheid zu wissen, wo sich dieser - auch über Seiten- und Domain-Grenzen hinweg - im Internet bewegt. - Jedes Mal, wenn eine Werbung von einem Broker geladen wird, ist es dessen erste Aufgabe, das Gerät auf eine einmalige Seriennummer in einem cookie zu überprüfen. - Wenn es diesen hat, sucht er das Profil für diese Seriennummer heraus und merkt sich die neu besuchte Seite. - Deshalb kann der Nutzer auf einer Seite nach einem Produkt suchen, nach dem er normalerweise nicht sucht, wie z. B. Walnüsse, - und plötzlich auf jeder anderen besuchten Website Werbungen für Walnüsse angezeigt bekommen.

- -

Zusätzlich zu Werbe-Brokern machen Social-Media-Plattformen das Gleiche. - Vor ein paar Jahren haben die großen Plattformen wie Facebook und Twitter eine große Auswahl von Websites ausgemacht, auf denen es in ihrem größten Interesse wäre, Social Media-Icons zu platzieren. - Das sind nicht nur Bilder, sondern auch eingebettete Codes, - welche zurück auf die Social-Media-Plattform verlinken und - neben anderen Dingen - ein Drittanbieter-Cookie auf dem Gerät hinterlassen. - Diese Cookies werden selbst dann gesetzt, wenn der Benutzer keinen Account bei der Social-Media-Plattform hat. - Mit der Zeit bauten Firmen wie Facebook (welche ebenfalls einen Werbe-Broker betreiben) eine große Anzahl von detaillierten Profilen über Personen an, die - niemals einen Account auf ihrer Seite erstellt haben.

- -

Es gibt daher kaum einen Grund, solche Drittanbieter-Cookies zuzulassen. Auf Geräten mit Android KitKat oder älter (version <= 4.4.4 or API <= 20) kann - Webkit leider nicht zwischen Erstanbieter- und Drittanbieter-Cookies unterscheiden. - Daher werden auf diesen Geräten - auch Drittanbieter-Cookies erlaubt, wenn Erstanbieter-Cookies zugelassen werden.

- -

DOM-Speicher

- -

DOM-Speicher (Document Object Model-Speicher) - auch bekannt als "Web Storage" - ist ein andere Art, mit der Websites Informationen speichern können. - Während der gesamte Speicherplatz für Cookies einer Webseite auf maximal 4 Kilobytes begrenzt ist, können im DOM-Speicher - Megabytes pro Seite gespeichert werden - diese Art der Speicherung ist daher gewissermassen Cookies auf Steroiden. - Da der DOM-Speicher jedoch Javascript benötigt um Daten zu schreiben oder zu lesen, kann er nicht aktiviert werden, solange nicht auch JavaScript aktiviert ist.

- -

Formulardaten

- -

Formulardaten umfassen Informationen, die in Web-Formulare eingetippt werden, wie etwa Namen, Adressen, Telefonnummern, usw. - Diese werden in Drop-Down-Listen angezeigt, wenn die betreffenden Seiten später wieder aufgerufen werden. - Anders als die oben genannten Formen lokal gespeicherter Informationen werden Formulardaten dabei nicht ohne bewusste Interaktion des Benutzers - (z.B. Abschicken eines Formulars) an einen Webserver geschickt. - Ab Android Oreo (8.0) verwendet WebView den Autofill-Service. - Daher werden die entsprechenden Wahlmöglichkeiten für Formulardaten bei neueren Android-Geräten nicht mehr angezeigt.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_overview_light.html b/app/src/main/assets/de/guide_overview.html similarity index 84% rename from app/src/main/assets/de/guide_overview_light.html rename to app/src/main/assets/de/guide_overview.html index 38d4fc5d..1af07eee 100644 --- a/app/src/main/assets/de/guide_overview_light.html +++ b/app/src/main/assets/de/guide_overview.html @@ -1,5 +1,5 @@ + -

Echte Privatsphäre

+

Echte Privatsphäre

Privacy Browser wurde entwickelt, um Ihnen während des Surfens die maximal mögliche Kontrolle über Ihre Privatsphäre zu gewähren. Wenn Sie sich mit einer Website verbinden, werden bestimmte Informationen, die zum Verarbeiten der Verbindung nötig sind, an den Server gesandt. @@ -41,7 +44,7 @@ Nahezu alle Browser nehmen freiwillig an dieser Verfolgung Teil, ohne den Nutzer darüber zu informieren. Privacy Browser ist dazu entwickelt, dass der Benutzer so viel Information und Kontrolle wie möglich über diese Verfolgungstechniken erhält.

-

Android's WebView Einschränkungen

+

Android's WebView Einschränkungen

Privacy Browser nutzt Android's eingebaute WebView-Komponente zum Anzeigen von Websites. Daher gibt es einige Einschränkungen in Bezug auf die von WebView bereitgestellten Kontrollmöglichkeiten der Privatsphäre-Einstellungen. diff --git a/app/src/main/assets/de/guide_overview_dark.html b/app/src/main/assets/de/guide_overview_dark.html deleted file mode 100644 index 89aa1f5b..00000000 --- a/app/src/main/assets/de/guide_overview_dark.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - -

Echte Privatsphäre

- -

Privacy Browser wurde entwickelt, um Ihnen während des Surfens die maximal mögliche Kontrolle über Ihre Privatsphäre zu gewähren. - Wenn Sie sich mit einer Website verbinden, werden bestimmte Informationen, die zum Verarbeiten der Verbindung nötig sind, an den Server gesandt. - Der Server erhält beispielsweise Ihre IP-Adresse und eine Port-Nummer, welche er benötigt, damit er weiß, wohin er antworten soll. - Diese Informationen werden häufig gespeichert, damit der Webseitenbetreiber Statistiken darüber generieren kann, - wie oft eine Website geladen wird und wie viele verschiedene IP-Adressen bzw. Besucher sie besucht haben.

- -

Darüber hinaus wollen viele Webseitenbetreiber das Surfverhalten ihrer Besucher im ganzen Internet und nicht nur auf einem einzigen Server nachverfolgen. - Sie nutzen dabei verschiedene technische Möglichkeiten. Einige davon nutzen das Anfragen oder Platzieren von bestimmten Informationen auf Ihrem Gerät, die das Nachverfolgen ermöglichen. - Nahezu alle Browser nehmen freiwillig an dieser Verfolgung Teil, ohne den Nutzer darüber zu informieren. - Privacy Browser ist dazu entwickelt, dass der Benutzer so viel Information und Kontrolle wie möglich über diese Verfolgungstechniken erhält.

- -

Android's WebView Einschränkungen

- -

Privacy Browser nutzt Android's eingebaute WebView-Komponente zum Anzeigen von Websites. - Daher gibt es einige Einschränkungen in Bezug auf die von WebView bereitgestellten Kontrollmöglichkeiten der Privatsphäre-Einstellungen. - Zum Beispiel ist es nicht möglich, manche JavaScript-Kommandos zu aktivieren und andere zu deaktivieren. - Für die Zukunft ist geplant, dass Privacy Browser zu einer eigenen WebView-Komponente namens Privacy WebView wechselt.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_proxies_light.html b/app/src/main/assets/de/guide_proxies.html similarity index 90% rename from app/src/main/assets/de/guide_proxies_light.html rename to app/src/main/assets/de/guide_proxies.html index 1dc53edc..f6e5f6fe 100644 --- a/app/src/main/assets/de/guide_proxies_light.html +++ b/app/src/main/assets/de/guide_proxies.html @@ -24,11 +24,14 @@ - + + + + -

Proxies deren Einschränkungen

+

Proxies deren Einschränkungen

Faktoren, die die Privatsphäre im Web einschränken wollen, lassen sich hauptsächlich in zwei verschiedene Kategorien unterteilen: Neugierige Behörden mit Zugriff auf Internetprovider und grosse Konzerne, die "soziale" und Werbe-Netzwerke betreiben. @@ -37,7 +40,7 @@ um Ihre Privatsphäre vor böswilligen Obrigkeiten (welche Ihren Datenverkehr ausspionieren) zu schützen, nicht jedoch vor Megafirmen (welche Schadcode auf Webservern einbinden).

-

Neugierige Behörden

+

Neugierige Behörden

Oft spähen neugierige Behörden Bürger aus, um Fehlverhalten und Menschenrechtsaktivitäten zu bestrafen. Üblicherweise betreiben sie entweder die Internetprovider selbst oder sie können Provider dazu zwingen, Informationen über jede besuchte IP-Adresse und die zugehörigen Benutzer herauszugeben. @@ -51,7 +54,7 @@ und Benutzer belangt werden, weil Obrigkeiten annehmen, dass Nutzer damit Verbotenes tun. Daher können Proxies hilfreich sein, stellen jedoch kein Allheilmittel dar.

-

Megafirmen

+

Megafirmen

Wenn ein Benutzer sich mit einem Webserver verbindet, kann der Webserver seine IP-Adresse sehen. Obwohl es keine ausgereifte Methode ist, können IP-Adressen in physische Adressen umgewandelt werden - mit erstaunlicher Genauigkeit. @@ -74,7 +77,7 @@ deaktivierten Cookies und DOM-Speicher und das Benutzen eines Browsers, der schwierig zu "fingerprinten" ist.

-

Nutzung von Proxies

+

Nutzung von Proxies

Trotz ihrer Einschränkungen können Proxies unter bestimmen Umständen durchaus nützlich sein. Tor und I2P @@ -83,6 +86,6 @@ Da der Datenverkehr in solchen Fällen jedoch über mehrere Proxy-Knoten geleitet wird, ist die Übertragungsgeschwindigkeit bei der Nutzung von Proxies meist deutlich langsamer als bei direkten Internet-Verbindungen.

- + \ No newline at end of file diff --git a/app/src/main/assets/de/guide_proxies_dark.html b/app/src/main/assets/de/guide_proxies_dark.html deleted file mode 100644 index 47f80d81..00000000 --- a/app/src/main/assets/de/guide_proxies_dark.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - -

Proxies deren Einschränkungen

- -

Faktoren, die die Privatsphäre im Web einschränken wollen, lassen sich hauptsächlich in zwei verschiedene Kategorien unterteilen: - Neugierige Behörden mit Zugriff auf Internetprovider und grosse Konzerne, die "soziale" und Werbe-Netzwerke betreiben. - Proxies wie TOR (The Onion Router) und - I2P (Invisible Internet Project) können hilfreich sein, - um Ihre Privatsphäre vor böswilligen Obrigkeiten (welche Ihren Datenverkehr ausspionieren) zu schützen, nicht jedoch vor Megafirmen (welche Schadcode auf Webservern einbinden).

- - -

Neugierige Behörden

- -

Oft spähen neugierige Behörden Bürger aus, um Fehlverhalten und Menschenrechtsaktivitäten zu bestrafen. - Üblicherweise betreiben sie entweder die Internetprovider selbst oder sie können Provider dazu zwingen, Informationen über jede besuchte IP-Adresse und die zugehörigen Benutzer herauszugeben. - Proxy-Server (layered proxies) versuchen solche Verstöße zu unterbinden, indem der Netzwerk-Verkehr eines Geräts verschlüsselt und über mehrere Server im Internet geleitet wird, - bevor er zum endgültigen Ziel geschickt wird. - Dadurch soll sichergestellt werden, dass Internet-Provider, - Server oder Websites weder die IP-Adresse des Gerätes noch die IP-Adresse des endgültigen Ziel-Webservers kennen. - Böswillige Obrigkeiten und von Ihnen kontrollierte Internet-Provider können so nicht erkennen, - auf welche Webserver ein Benutzer zugreift - sie können jedoch feststellen, dass der Benutzer einen Proxy-Service nutzt. - In einigen Teilen der Welt kann die Nutzung von Proxies als Anzeichen von illegalem Verhalten gewertet ("Wenn Du nichts zu verbergen hättest, würdest Du Deinen Datenverkehr nicht verschlüsseln") - und Benutzer belangt werden, weil Obrigkeiten annehmen, dass Nutzer damit Verbotenes tun. Daher können Proxies hilfreich sein, stellen jedoch kein Allheilmittel dar.

- - -

Megafirmen

- -

Wenn ein Benutzer sich mit einem Webserver verbindet, kann der Webserver seine IP-Adresse sehen. - Obwohl es keine ausgereifte Methode ist, können IP-Adressen in physische Adressen umgewandelt werden - mit erstaunlicher Genauigkeit. - Kleinere Webserver verlassen sich üblicherweise auf die IP-Adresse, um den Standort von Benutzern, die Ihre Internet-Seiten besuchen, festzustellen. - Proxies sind in solchen Fällen eine gute Lösung, um den Standort eines Benutzers vor den Serverbetreibern zu verschleiern. - Große Megafirmen, die "soziale" und Werbe-Netzwerke betreiben, nutzen jedoch Profile an Informationen, um Benutzer über ihre Geräte und IP-Adressen hinweg zu tracken. - Diese Profile nutzen verschiedene Techniken um Benutzer ausfindig zu machen, inklusive JavaScript, Cookies, Tracking-IDs und den sogenannten - "Browser-Fingerabdruck" (fingerprinting). - Weil die große Mehrheit der Websites im Internet Werbung entweder von großen Werbenetzwerken oder von eingebetteten Social-Media-Buttons mit ihrem zugewiesenen JavaScript lädt, - haben die großen Megafirmen Profile von so gut wie jedem Internetnutzer angefertigt und verfolgen deren Aktivitäten über zueinander unabhängige Seiten.

- -

Sie verfolgen jede besuchte Seite, Alles online Gekaufte, jede für Einkäufe genutzte Kreditkarte, jede Adresse, - an die Waren verschickt werden, und die GPS-Metadaten von jedem ins Internet hochgeladene Foto. - Sie fertigen Profile an, die Alter, Geschlecht, Beziehungsstatus, Adresse, politische und religiöse Ansichten, familiäre Umstände, - Anzahl der Haustiere und alles Andere, was sie über einen Nutzer herausfinden können, beinhalten. - Sie kaufen sogar ganze Datenbanken mit Informationen über Kreditkartennutzungen in Geschäften auf, damit sie das Offline-Einkaufsverhalten von Nutzern in ihren Profilen nachverfolgen können. - Da sie damit bereits wesentlich genauere Adress-Informationen über einen Benutzer haben als eine IP-Adresse offenlegt, bieten Proxies keinen nennenswerten Privatsphäre-Schutz gegen Megafirmen.

- -

Der einzige und beste Schutz der Privatsphäre gegen Megafirmen ist es, mit deaktivieren JavaScript durchs Web zu surfen, gefolgt von geblockten Werbenetzwerken, - deaktivierten Cookies und DOM-Speicher und das Benutzen eines Browsers, der schwierig zu "fingerprinten" ist.

- - -

Nutzung von Proxies

- -

Trotz ihrer Einschränkungen können Proxies unter bestimmen Umständen durchaus nützlich sein. - Tor und I2P - existieren Android-Apps, die die einfache Nutzung dieser Proxy-Netzwerke ermöglichen. - Wird die Nutzung dieser Proxy-Netzwerke in Privacy Browser aktiviert, wird die App-Leiste mit einem hellblauen statt hellgrauen Hintergrund versehen. - Da der Datenverkehr in solchen Fällen jedoch über mehrere Proxy-Knoten geleitet wird, - ist die Übertragungsgeschwindigkeit bei der Nutzung von Proxies meist deutlich langsamer als bei direkten Internet-Verbindungen.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_requests_light.html b/app/src/main/assets/de/guide_requests.html similarity index 92% rename from app/src/main/assets/de/guide_requests_light.html rename to app/src/main/assets/de/guide_requests.html index 531d87f3..c19bb39b 100644 --- a/app/src/main/assets/de/guide_requests_light.html +++ b/app/src/main/assets/de/guide_requests.html @@ -1,5 +1,5 @@ + -

Resourcen-Zugriffe

+

Resourcen-Zugriffe

Wenn eine URL geladen wird, wird üblicherweise eine Menge Anfragen für mit der Seite verbundene Ressourcen wie Bilder, CSS-, JavaScript- und andere Dateien an den betreffenden Webserver gestellt. Details dazu können in der Ansicht "Zugriffe" betrachtet werden, welche über das Navigations-Menü links erreicht werden kann. In dieser Ansicht wird auch dargestellt, wie viele (und welche) Anfragen geblockt wurden. Durch Antippen der betreffenden Anfragen können weitere Details dazu angezeigt werden, die zeigen, warum die Anfrage erlaubt oder blockiert wurde.

-

+

Privacy Browser enthält vier gebräuchliche Filterlisten, die auf der Adblock-Syntax basieren: EasyList, EasyPrivacy, Fanboy’s Annoyance Filterliste und Fanboy’s Social Blocking Filterliste. diff --git a/app/src/main/assets/de/guide_requests_dark.html b/app/src/main/assets/de/guide_requests_dark.html deleted file mode 100644 index 072b885f..00000000 --- a/app/src/main/assets/de/guide_requests_dark.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - -

Resourcen-Zugriffe

- -

Wenn eine URL geladen wird, wird üblicherweise eine Menge Anfragen für mit der Seite verbundene Ressourcen wie Bilder, CSS-, JavaScript- und andere Dateien an den betreffenden Webserver gestellt. - Details dazu können in der Ansicht "Zugriffe" betrachtet werden, welche über das Navigations-Menü links erreicht werden kann. - In dieser Ansicht wird auch dargestellt, wie viele (und welche) Anfragen geblockt wurden. - Durch Antippen der betreffenden Anfragen können weitere Details dazu angezeigt werden, die zeigen, warum die Anfrage erlaubt oder blockiert wurde.

- -

- -

Privacy Browser enthält vier gebräuchliche Filterlisten, die auf der Adblock-Syntax basieren: - EasyList, EasyPrivacy, Fanboy’s Annoyance Filterliste und Fanboy’s Social Blocking Filterliste. - Diese werden in 22 Unter-Listen aufgeteilt, welche die Ressourcen-Zugriffe in der folgenden Reihenfolge überprüfen:

- -
    -
  1. Haupt-Positivliste
  2. -
  3. Positivliste (URL-Ende)
  4. -
  5. Domänen-Positivliste
  6. -
  7. Domänen-Positivliste (URL-Anfang)
  8. -
  9. Domänen-Positivliste (URL-Ende)
  10. -
  11. Drittanbieter-Positivliste
  12. -
  13. Drittanbieter-Domänen-Positivliste
  14. -
  15. Drittanbieter-Domänen-Positivliste (URL-Anfang)
  16. -
  17. Haupt-Negativliste
  18. -
  19. Negativliste (URL-Anfang)
  20. -
  21. Negativliste (URL-Ende)
  22. -
  23. Domänen-Negativliste
  24. -
  25. Domänen-Negativliste (URL-Anfang)
  26. -
  27. Domänen-Negativliste (URL-Ende)
  28. -
  29. Domänen-Negativliste mit regulären Ausdrücken
  30. -
  31. Drittanbieter-Negativliste
  32. -
  33. Drittanbieter-Negativliste (URL-Anfang)
  34. -
  35. Drittanbieter-Domänen-Negativliste
  36. -
  37. Drittanbieter-Domänen-Negativliste (URL-Anfang)
  38. -
  39. Drittanbieter-Negativliste mit regulären Ausdrücken
  40. -
  41. Drittanbieter-Domänen-Negativliste mit regulären Ausdrücken
  42. -
  43. Negativliste mit regulären Ausdrücken
  44. -
- -

Listen mit "(URL-Anfang)" prüfen gegen den Anfang einer URL, solche mit "(URL-Ende)" gegen das Ende der URL. Domänen-Listen prüfen gegen bestimmte Domains. - Drittanbieter-Listen greifen nur, wenn die Domain der Anfrage eine andere ist als die Domain der aufgerufenen URL. - Listen mit regulären Ausdrücken folgen der Syntax für reguläre Ausdrücke. Jede Unter-Liste hat dabei einen oder mehrere Einträge. - Bei Domänen-Unterlisten werden die Ressourcen-Zugriffe nur dann überprüft, wenn der erste Eintrag der Domain der aufgerufenen URL entspricht.

- -

Aufgrund von Einschränkungen in Android’s WebView und um die Geschwindigkeit von Anfragen zu steigern, verwendet Privacy Browser eine vereinfachte Auswertung der Adblock-Syntax. - Dies kann manchmal zu "false positives" führen, bei denen Ressourcen erlaubt oder blockiert werden, die in den originalen Einträgen anders intendiert wären. - Eine detailiertere Beschreibung, wie die Listen-Einträge abgearbeitet werden, ist unter stoutner.com verfügbar.

- -

Privacy Browser verfügt über drei zusätzliche Filterlisten: - UltraList und UltraPrivacy - blockieren Werbung und Tracker, die EasyList und EasyPrivacy durchlassen. Die dritte Filterliste blockiert alle Drittanbieter-Anfragen. - Eine Anfrage wird dabei nur als Drittanbieter-Anfrage gewertet, wenn die Basis-Domain der Anfrage eine andere ist als die Basis-Domain der angefragten URL. - Lädt zum Beispiel die Seite www.website.com ein Bild von images.website.com, wird diese Anfrage nicht als Drittanbieter-Anfrage gewertet, - da die beiden Anfragen dieselbe Basis-Domain website.com haben. - Alle Drittanbieter-Anfragen zu blockieren verbessert zwar die Privatsphäre, diese Einstellung ist jedoch standardmäßig deaktiviert, da dadurch viele Webseiten verunstaltet werden können.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_ssl_certificates_light.html b/app/src/main/assets/de/guide_ssl_certificates.html similarity index 86% rename from app/src/main/assets/de/guide_ssl_certificates_light.html rename to app/src/main/assets/de/guide_ssl_certificates.html index 620cb164..9541a77e 100644 --- a/app/src/main/assets/de/guide_ssl_certificates_light.html +++ b/app/src/main/assets/de/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Verbindungen mit Vertrauen

+

Verbindungen mit Vertrauen

Wenn Sie verschlüsselte URLs (also solche, die mit HTTPS beginnen) besuchen, verwendet der Webserver ein SSL-Zertifikat, um einerseits die zum Browser gesendeten Informationen zu verschlüsseln und andererseits um sich selbst zu identifizieren. @@ -40,13 +43,13 @@

Mittels Zertifikats-Verankerung ("Pinning") kann Privacy Browser angewiesen werden, nur ein spezielles SSL-Zertifikat für eine Domäne zuzulassen. Jedes andere Zertifikat - auch wenn dies gültig ist - wird in diesem Fall abgelehnt.

-

+

SSL-Zertifikate laufen zu einem festgelegten Datum ab, sodass auch verankerte Zertifikate legitimerweise von Zeit zu Zeit aktualisiert werden müssen. In der Regel müssen SSL-Zertifikate in der Mehrzahl der Fälle nicht verankert werden. Für jene, die jedoch damit rechnen müssen, dass mächtige Organisationen auf sie abzielen, kann das verankern von SSL-Zertifikaten Man-in-the-middle-Attacken aufdecken und ggf. vereiteln. Privacy Browser bietet auch die Möglichkeit, IP-Adressen zu verankern.

-

+

SSL-Zertifikate können in den Domänen-Einstellungen verankert werden. Neben dem Schutz gegen MITM-Attacken kann das Verankern von Zertifikaten auch für selbst-erzeugte Zertifikate genutzt werden (z.B. bei WLAN-Routern oder Access-Points). diff --git a/app/src/main/assets/de/guide_ssl_certificates_dark.html b/app/src/main/assets/de/guide_ssl_certificates_dark.html deleted file mode 100644 index 7f1c0761..00000000 --- a/app/src/main/assets/de/guide_ssl_certificates_dark.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - -

Verbindungen mit Vertrauen

- -

Wenn Sie verschlüsselte URLs (also solche, die mit HTTPS beginnen) besuchen, verwendet der Webserver ein SSL-Zertifikat, - um einerseits die zum Browser gesendeten Informationen zu verschlüsseln und andererseits um sich selbst zu identifizieren. - Der Zweck der Server-Identifikation ist dabei, zu verhindern, dass ein Rechner zwischen Server und Ihrem Browser geschaltet werden kann, - der vorgibt der Server zu sein und die übertragenen Informationen auf dem Transportweg entschlüsseln oder verändern kann. Solche Angriffe werden als "Man-in-the-Middle-Atacken" (MITM) bezeichnet. - SSL-Zertifikate werden von Zertifikats-Stellen generiert, d.h. Unternehmen, die die Identität eines Servers überprüfen und dafür (meist gegen Entgelt) ein Zertifikat ausstellen. - Android beinhaltet eine Liste zuverlässiger Zertifikats-Stellen und akzeptiert jedes von einer solchen ausgestellte Zertifikat einer Webseite. - Es wird dabei davon ausgegangen, dass eine Organisation kein SSL-Zertifikat für eine Domain beantragen kann, die nicht ihr gehört. - In der Praxis konnten dies jedoch bereits viele Regierungen und große Unternehmen tun.

- -

Mittels Zertifikats-Verankerung ("Pinning") kann Privacy Browser angewiesen werden, nur ein spezielles SSL-Zertifikat für eine Domäne zuzulassen. - Jedes andere Zertifikat - auch wenn dies gültig ist - wird in diesem Fall abgelehnt.

- -

- -

SSL-Zertifikate laufen zu einem festgelegten Datum ab, sodass auch verankerte Zertifikate legitimerweise von Zeit zu Zeit aktualisiert werden müssen. - In der Regel müssen SSL-Zertifikate in der Mehrzahl der Fälle nicht verankert werden. Für jene, die jedoch damit rechnen müssen, dass mächtige Organisationen auf sie abzielen, - kann das verankern von SSL-Zertifikaten Man-in-the-middle-Attacken aufdecken und ggf. vereiteln. Privacy Browser bietet auch die Möglichkeit, IP-Adressen zu verankern.

- -

- -

SSL-Zertifikate können in den Domänen-Einstellungen verankert werden. - Neben dem Schutz gegen MITM-Attacken kann das Verankern von Zertifikaten auch für selbst-erzeugte Zertifikate genutzt werden (z.B. bei WLAN-Routern oder Access-Points). - In diesen Fällen werden die sonst üblichen Fehlermeldungen unterdrückt, wenn die Website des Geräts geladen wird. - Durch Antippen des aktiven Tabs wird das SSL-Zertifikat der aktuell darin angezeigten Webseite angezeigt.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_tracking_ids_light.html b/app/src/main/assets/de/guide_tracking_ids.html similarity index 80% rename from app/src/main/assets/de/guide_tracking_ids_light.html rename to app/src/main/assets/de/guide_tracking_ids.html index 1cf57698..8c0379d6 100644 --- a/app/src/main/assets/de/guide_tracking_ids_light.html +++ b/app/src/main/assets/de/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Do-Not-Track

+

Do-Not-Track

Vor einigen Jahren wurde vom W3C (World Wide Web Consortium) ein Mechanismus für Internet-Browser entwickelt, der Webserver davon in Kenntnis setzen sollte, dass deren Benutzer nicht getrackt werden wollen. @@ -38,7 +41,7 @@ So ignorieren zum Beispiel mit Yahoo, Google, Microsoft und Facebook so gut wie alle grossen Internet-Anbieter zumindest einige DNT-Header.

-

URL-Bereinigung

+

URL-Bereinigung

Privacy Browser entfernt Tracking-relevante Teile aus URLs, wie z.B. ?utm_ von Google Analytics und ?fbclick= von Facebook. Die URL-Bereinigung kann in den Einstellungen deaktiviert werden, sollte sie Probleme verursachen.

diff --git a/app/src/main/assets/de/guide_tracking_ids_dark.html b/app/src/main/assets/de/guide_tracking_ids_dark.html deleted file mode 100644 index 8f2e6c09..00000000 --- a/app/src/main/assets/de/guide_tracking_ids_dark.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

Do-Not-Track

- -

Vor einigen Jahren wurde vom W3C (World Wide Web Consortium) ein Mechanismus für Internet-Browser entwickelt, der Webserver davon in Kenntnis setzen sollte, - dass deren Benutzer nicht getrackt werden wollen. - Dies wird über den DNT-Header (Do-Not-Track-Header) innerhalb von Ressourcen-Anfragen bewerkstelligt.

- -

Der DNT-Header bewirkt jedoch de facto so gut wie keine Privatsphäre, da er von den meisten Webservern schlicht ignoriert wird. - So ignorieren zum Beispiel mit Yahoo, Google, Microsoft und Facebook so gut wie alle grossen Internet-Anbieter zumindest einige DNT-Header.

- - -

URL-Bereinigung

- -

Privacy Browser entfernt Tracking-relevante Teile aus URLs, wie z.B. ?utm_ von Google Analytics und - ?fbclick= von Facebook. Die URL-Bereinigung kann in den Einstellungen deaktiviert werden, sollte sie Probleme verursachen.

- - \ No newline at end of file diff --git a/app/src/main/assets/de/guide_user_agent_light.html b/app/src/main/assets/de/guide_user_agent.html similarity index 92% rename from app/src/main/assets/de/guide_user_agent_light.html rename to app/src/main/assets/de/guide_user_agent.html index 76b940c2..77e6e2cf 100644 --- a/app/src/main/assets/de/guide_user_agent_light.html +++ b/app/src/main/assets/de/guide_user_agent.html @@ -24,11 +24,14 @@ - + + + + -

Browser-Identifikation

+

Browser-Identifikation

Wenn sich Internet-Browser mit Webseiten verbinden, senden Sie automatisch den sog. "User-Agent", welcher den Browser und dessen Anzeige-Fähigkeiten ausweist. Der Webserver kann diese Informationen dann nutzen, um verschiedene Versionen der Webseite an unterschiedliche Browser auszuliefern. @@ -45,7 +48,7 @@ Der Screenshot unterhalb zeigt ein Pixel 2 XL mit Android 10 und Android WebView 84.0.4147.125. Die meisten Webserver erkennen diesen User-Agent als Mobil-Browser und liefern eine Mobil-Version der Seite aus, so eine solche existiert.

- +

Der User-Agent beinhaltet normalerweise genügend Informationen, dass nur wenige Besucher einer Webseite denselben haben. Wenn der User-Agent daher mit anderen nicht-eindeutigen Identifizierungs-Informationen kombiniert wird, kann dies ausreichen, um einen eindeutigen Fingerabdruck zu ergeben. @@ -54,7 +57,7 @@ Wenn dieser Test mit aktiviertem JavaScript absolviert wird, steigt die Menge der offengelegten Informationen drastisch an. Browser Leaks und Am I Unique sind ebenfalls gute Quellen für Informationen zu diesem Thema.

- +

Privacy Browser bietet verschiedene Voreinstellungen für den User-Agent an, um sich als gebräuchliche Browser und Betriebssysteme auszugeben. Dabei gilt grundsätzlich: Je unüblicher der User-Agent ist, des einfacher ist das Tracking. diff --git a/app/src/main/assets/de/guide_user_agent_dark.html b/app/src/main/assets/de/guide_user_agent_dark.html deleted file mode 100644 index 7b7e20ff..00000000 --- a/app/src/main/assets/de/guide_user_agent_dark.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - -

Browser-Identifikation

- -

Wenn sich Internet-Browser mit Webseiten verbinden, senden Sie automatisch den sog. "User-Agent", welcher den Browser und dessen Anzeige-Fähigkeiten ausweist. - Der Webserver kann diese Informationen dann nutzen, um verschiedene Versionen der Webseite an unterschiedliche Browser auszuliefern. - Zum Beispiel haben viele Internet-Seiten unterschiedliche Versionen für Desktop- und Mobil-Browser, - damit die Seiten in Anhängigkeit von der Displaygrösse möglichst optimal genutzt werden können.

- -

In der Voreinstellung nutzt Privacy Browser seinen eigenen User-Agent, welcher PrivacyBrowser/1.0 lautet. - Damit wird lediglich ein Minimum an Informationen an den jeweiligen Webserver gesendet. - Da jedoch manche Webserver diesen User-Agent nicht als mobilen Browser erkennen, liefern sie ggf. die Desktop-Version der betreffenden Webseite aus.

- -

Im Vergleich dazu plaudert der Standard-User-Agent von WebView eine grosse Menge an Informationen über die Hard- und Software des genutzten Geräts aus. - Wird auf der Einstellungen-Seite von Privacy Browser WebView-Standard als User-Agent ausgewählt, - wird der dadurch übermittelte User-Agent angezeigt. - Der Screenshot unterhalb zeigt ein Pixel 2 XL mit Android 10 und Android WebView 84.0.4147.125. - Die meisten Webserver erkennen diesen User-Agent als Mobil-Browser und liefern eine Mobil-Version der Seite aus, so eine solche existiert.

- - - -

Der User-Agent beinhaltet normalerweise genügend Informationen, dass nur wenige Besucher einer Webseite denselben haben. - Wenn der User-Agent daher mit anderen nicht-eindeutigen Identifizierungs-Informationen kombiniert wird, kann dies ausreichen, um einen eindeutigen Fingerabdruck zu ergeben. - Die Electronic Frontier Foundation hat das Werkzeug Panopticlick geschaffen, - um zu zeigen, wie viele Informationen aus diesen Quellen gesammelt werden kann. - Wenn dieser Test mit aktiviertem JavaScript absolviert wird, steigt die Menge der offengelegten Informationen drastisch an. - Browser Leaks und Am I Unique sind ebenfalls gute Quellen für Informationen zu diesem Thema.

- - - -

Privacy Browser bietet verschiedene Voreinstellungen für den User-Agent an, um sich als gebräuchliche Browser und Betriebssysteme auszugeben. - Dabei gilt grundsätzlich: Je unüblicher der User-Agent ist, des einfacher ist das Tracking. - Wenn Privacy Browser gebräuchlicher wird und viele Personen den User-Agent PrivacyBrowser/1.0 nutzen, wird dies eine gute Wahl für die Privatsphäre sein. - Firefox und Chrome sind aktuell die gebräuchlichsten Browser. - Da sie jedoch häufig aktualisiert werden und in deren User-Agent auch die jeweilige Browser-Version mitsenden, kann es sein, - dass die in Privacy Browser mitgelieferten User-Agents für Firefox und Chrome wiederum in den Server-Logs auffallen.

- -

Manche Websites funktionieren nicht korrekt, wenn sie einen User-Agent nicht erkennen. - Wird für derartige Webseiten in den Domänen-Einstellungen von Privacy Browser der User-Agent WebView Standard oder ein anderer gebräuchlicher User-Agent ausgewählt, - verschwinden diese Probleme meist. - Androids WebView erlaubt keinen leeren User Agent. Wenn das der Fall ist, wird der Standard-User Agent an den Server gesandt.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/about_changelog_dark.html b/app/src/main/assets/en/about_changelog.html similarity index 99% rename from app/src/main/assets/en/about_changelog_dark.html rename to app/src/main/assets/en/about_changelog.html index 67526ba8..0a64681b 100644 --- a/app/src/main/assets/en/about_changelog_dark.html +++ b/app/src/main/assets/en/about_changelog.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/main/assets/en/about_changelog_light.html b/app/src/main/assets/en/about_changelog_light.html deleted file mode 100644 index 0bf674fb..00000000 --- a/app/src/main/assets/en/about_changelog_light.html +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - -

3.5.1 (version code 51)

-

28 August 2020 - minimum API 19, target API 29

-
    -
  • Fix a bug that caused new intents (links from other apps) to not load if Privacy Browser had been killed by the OS in the background.
  • -
  • Fix a bug that caused the app to initialize incorrectly if the app theme was set to the opposite of the OS theme.
  • -
- -

3.5 (version code 50)

-

18 August 2020 - minimum API 19, target API 29

- - -

3.4.1 (version code 49)

-

1 April 2020 - minimum API 19, target API 29

- - -

3.4 (version code 48)

-

28 March 2020 - minimum API 19, target API 29

- - -

3.3 (version code 47)

-

3 January 2020 - minimum API 19, target API 29

- - -

3.2 (version code 46)

-

20 July 2019 - minimum API 19, target API 28

- - -

3.1 (version code 45)

-

27 May 2019 - minimum API 19, target API 28

- - -

3.0.1 (version code 44)

-

2 May 2019 - minimum API 19, target API 28

- - -

3.0 (version code 43)

-

26 April 2019 - minimum API 19, target API 28

-
    -
  • Add tabbed browsing.
  • -
  • Fix a bug that caused the bottom of the WebView to be cut off when scrolling the app bar was disabled.
  • -
  • Fix a bug that caused Privacy Browser to restart whenever a Bluetooth keyboard was connected/disconnected.
  • -
  • Updated German translation provided by Bernhard G. Keller.
  • -
  • Updated Italian translation provided by Francesco Buratti.
  • -
  • Updated Russian translation.
  • -
  • Updated Spanish translation provided by Jose A. León.
  • -
  • Partial Turkish translation.
  • -
- -

2.17.1 (version code 42)

-

5 March 2019 - minimum API 19, target API 28

- - -

2.17 (version code 41)

-

27 February 2019 - minimum API 19, target API 28

- - -

2.16 (version code 40)

-

31 January 2019 - minimum API 19, target API 28

- - -

2.15.1 (version code 39)

-

27 December 2018 - minimum API 19, target API 28

- - -

2.15 (version code 38)

-

24 December 2018 - minimum API 19, target API 28

- - -

2.14 (version code 37)

-

8 December 2018 - minimum API 19, target API 28

- - -

2.13 (version code 36)

-

29 October 2018 - minimum API 19, target API 28

- - -

2.12 (version code 35)

-

31 July 2018 - minimum API 19, target API 27

- - -

2.11 (version code 34)

-

10 July 2018 - minimum API 19, target API 27

- - -

2.10 (version code 33)

-

24 May 2018 - minimum API 19, target API 27

- - -

2.9 (version code 32)

-

9 May 2018 - minimum API 19, target API 27

- - -

2.8.1 (version code 31)

-

1 March 2018 - minimum API 19, target API 27

- - -

2.8 (version code 30)

-

22 February 2018 - minimum API 19, target API 27

- - -

2.7.2 (version code 29)

-

22 November 2017 - minimum API 19, target API 26

- - -

2.7.1 (version code 28)

-

9 November 2017 - minimum API 19, target API 26

- - -

2.7 (version code 27)

-

7 November 2017 - minimum API 19, target API 26

-
    -
  • Add a bookmarks drawer that is accessed by sliding from the right.
  • -
  • Prevent Night Mode from flashing a white background when loading new pages.
  • -
  • Update the user agents.
  • -
  • Bump target API to 26 (Android Oreo, 8.0.0).
  • -
  • Updated Italian translation provided by Francesco Buratti.
  • -
  • Updated Spanish translation provided by Jose A. León.
  • -
- -

2.6 (version code 26)

-

18 September 2017 - minimum API 19, target API 25

- - -

2.5 (version code 25)

-

26 August 2017 - minimum API 19, target API 25

- - -

2.4 (version code 24)

-

23 June 2017 - minimum API 19, target API 25

- - -

2.3 (version code 23)

-

26 May 2017 - minimum API 19, target API 25

- - -

2.2 (version code 22)

-

27 April 2017 - minimum API 19, target API 25

- - -

2.1 (version code 21)

-

25 March 2017 - minimum API 19, target API 25

- - -

2.0.1 (version code 20)

-

21 March 2017 - minimum API 19, target API 25

- - -

2.0 (version code 19)

-

16 March 2017 - minimum API 19, target API 25

- - -

1.15 (version code 18)

-

11 February 2017 - minimum API 19, target API 25

- - -

1.14.1 (version code 17)

-

4 January 2017 - minimum API 19, target API 25

- - -

1.14 (version code 16)

-

26 December 2016 - minimum API 19, target API 25

- - -

1.13 (version code 15)

-

28 November 2016 - minimum API 19, target API 24

- - -

1.12 (version code 14)

-

9 November 2016 - minimum API 19, target API 24

- - -

1.11 (version code 13)

-

22 October 2016 - minimum API 19, target API 24

- - -

1.10 (version code 12)

-

15 September 2016 - minimum API 19, target API 23

- - -

1.9.1 (version code 11)

-

27 August 2016 - minimum API 19, target API 23

-
    -
  • Changed asset image links to relative paths so Privacy Browser will build on F-Droid.
  • -
- -

1.9 (version code 10)

-

26 August 2016 - minimum API 19, target API 23

- - -

1.8 (version code 9)

-

16 July 2016 - minimum API 19, target API 23

- - -

1.7 (version code 8)

-

16 June 2016 - minimum API 19, target API 23

- - -

1.6 (version code 7)

-

11 May 2016 - minimum API 15, target API 23

- - -

1.5 (version code 6)

-

5 May 2016 - minimum API 15, target API 23

-
    -
  • Add the option to disable swipe to refresh so that certain websites, like Google Maps, will function correctly.
  • -
- -

1.4 (version code 5)

-

28 April 2016 - minimum API 15, target API 23

- - -

1.3 (version code 4)

-

7 April 2016 - minimum API 15, target API 23

- - -

1.2 (version code 3)

-

23 March 2016 - minimum API 15, target API 23

- - -

1.1 (version code 2)

-

9 March 2016 - minimum API 10, target API 23

-
    -
  • Separate the standard and the free flavors so that Privacy Browser builds correctly on F-Droid.
  • -
- -

1.0 (version code 1)

-

24 February 2016 - minimum API 10, target API 23

-
    -
  • Toggle JavaScript, DOM storage, and cookies.
  • -
  • Set default enabled status for JavaScript, DOM storage, and cookies.
  • -
  • Clear DOM storage and cookies.
  • -
  • Add shortcuts to the home screen.
  • -
  • Utilize download manager.
  • -
  • Navigate forward and back.
  • -
  • Cut, copy, paste URLs.
  • -
  • Share URLs.
  • -
  • Set homepage.
  • -
  • Scroll URL bar.
  • -
  • Maintain WebView scroll location when rotating screen.
  • -
  • Swipe to refresh WebView.
  • -
  • Play full screen videos (requires JavaScript to be enabled).
  • -
  • Clear and Exit menu item.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/en/about_contributors_dark.html b/app/src/main/assets/en/about_contributors.html similarity index 89% rename from app/src/main/assets/en/about_contributors_dark.html rename to app/src/main/assets/en/about_contributors.html index 5a461758..ea79099b 100644 --- a/app/src/main/assets/en/about_contributors_dark.html +++ b/app/src/main/assets/en/about_contributors.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/main/assets/en/about_contributors_light.html b/app/src/main/assets/en/about_contributors_light.html deleted file mode 100644 index 284880b3..00000000 --- a/app/src/main/assets/en/about_contributors_light.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - -

Principal Developer

-

Privacy Browser is primarily developed by Soren Stoutner.

- -

Coders

- Thomas Jensen
- Hendrik Knackstedt - -

Translators

- Thiago Nazareno Conceição Silva de Jesus: Brazilian Portuguese
- Kévin LE FLOHIC: French
- Bernhard G. Keller: German
- Francesco Buratti: Italian
- Jose A. León: Spanish - -

Past Translators

- Stefan Erhardt: German
- Aaron Gerlach: German - -
-
-

Contributors are welcome to submit both code and translations.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/about_licenses_light.html b/app/src/main/assets/en/about_licenses.html similarity index 88% rename from app/src/main/assets/en/about_licenses_light.html rename to app/src/main/assets/en/about_licenses.html index 84b93359..5b94176e 100644 --- a/app/src/main/assets/en/about_licenses_light.html +++ b/app/src/main/assets/en/about_licenses.html @@ -20,7 +20,10 @@ - + + + + @@ -59,97 +62,99 @@ The modified file is released under the GPLv3+ license.

Icons

-

- are derived from security and language, +

+ are derived from security and 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.

-

is derived from elements of folder and exit_to_app, +

is derived from elements of folder and exit_to_app, which are part of the Android Material icon set and are released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from elements of bookmark and create_new_folder, which are part of the +

is derived from elements of bookmark and create_new_folder, which are part of the Android Material icon set and are released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from create_new_folder, +

is derived from create_new_folder, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from exit_to_app, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. +

is derived from exit_to_app, + which is part of the Android Material icon set and is released under the Apache License 2.0. + Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from compare, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. +

is derived from compare, + which is part of the Android Material icon set and is released under the Apache License 2.0. + Modifications copyright © 2017 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

is derived from sort, which is part of the Android Material icon set +

is derived from sort, which is part of the Android Material icon set and is released under the Apache License 2.0. Modifications copyright © 2019 Soren Stoutner. The resulting image is released under the GPLv3+ license.

-

cookie was created by Google. +

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 information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/en/about_licenses_dark.html b/app/src/main/assets/en/about_licenses_dark.html deleted file mode 100644 index d5686eae..00000000 --- a/app/src/main/assets/en/about_licenses_dark.html +++ /dev/null @@ -1,1062 +0,0 @@ - - - - - - - - - - -

Copyright

-

Privacy Browser copyright © 2015-2020 Soren Stoutner.

- -

License

-

Privacy Browser is released under the GPLv3+ license. The full text of the license is below. - The source code is available from git.stoutner.com.

- -

Blocklists

-

EasyList and EasyPrivacy - are dual licensed under the GPLv3+ - and the Creative Commons Attribution-ShareAlike 3.0+ Unported licenses. - Privacy Browser incorporates them using the GPLv3+ option.

- -

Fanboy’s Annoyance List and Fanboy’s Social Blocking List - are released under the Creative Commons Attribution 3.0 Unported license, - which is compatible with the GPLv3+. The lists are included unchanged in Privacy Browser.

- -

More information about the blocklists can be found on the EasyList website.

- -

Libraries

-

Privacy Browser is built with the AndroidX Libraries, - the Kotlin libraries, - and code from the Google Material Maven repository, - which are released under the Apache License 2.0.

- -

The free flavor of Privacy Browser is built with Firebase Ads, - which is released under the Android Software Development Kit License.

- -

Classes

-

com.stoutner.privacybrowser.views.CheckedLinearLayout is a modified version of a class contained in the - Android Camera source code. - The original file was released under the Apache License 2.0. - The modified file is released under the GPLv3+ license.

- -

Icons

-

- are derived from security and 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.

-

is derived from elements of folder and exit_to_app, which are part of the - Android Material icon set and are released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from elements of bookmark and create_new_folder, which are part of the - Android Material icon set and are released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from create_new_folder, - which is part of the Android Material icon set and is released under the Apache License 2.0. - Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from exit_to_app, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from compare, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2017 Soren Stoutner. - The resulting image is released under the GPLv3+ license.

-

is derived from sort, which is part of the Android Material icon set - and is released under the Apache License 2.0. Modifications copyright © 2019 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 information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others’ Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/en/about_links_light.html b/app/src/main/assets/en/about_links.html similarity index 68% rename from app/src/main/assets/en/about_links_light.html rename to app/src/main/assets/en/about_links.html index 8bc38d67..20fc7da6 100644 --- a/app/src/main/assets/en/about_links_light.html +++ b/app/src/main/assets/en/about_links.html @@ -1,5 +1,5 @@ +

Websites

-

+

News

-

+

Roadmap

-

+

Bug Tracker and Feature Requests

-

+

Forum

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/en/about_links_dark.html b/app/src/main/assets/en/about_links_dark.html deleted file mode 100644 index 7f5cd124..00000000 --- a/app/src/main/assets/en/about_links_dark.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - -

Websites

- -

- News

- -

- Roadmap

- -

- Bug Tracker and Feature Requests

- -

- Forum

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/en/about_permissions_light.html b/app/src/main/assets/en/about_permissions.html similarity index 88% rename from app/src/main/assets/en/about_permissions_light.html rename to app/src/main/assets/en/about_permissions.html index 7a293538..71629fdf 100644 --- a/app/src/main/assets/en/about_permissions_light.html +++ b/app/src/main/assets/en/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/en/about_permissions_dark.html b/app/src/main/assets/en/about_permissions_dark.html deleted file mode 100644 index 5da4b04d..00000000 --- a/app/src/main/assets/en/about_permissions_dark.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - -

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.

- -

Read storage

-

android.permission.READ_EXTERNAL_STORAGE

-

Required to import settings from public folders. On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can import settings from the app’s folders instead.

- -

Write storage

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Required to export settings and download files to the public folders. - On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can export settings and store downloads in the app’s folders instead.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/about_privacy_policy_light.html b/app/src/main/assets/en/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/en/about_privacy_policy_light.html rename to app/src/main/assets/en/about_privacy_policy.html index 6dd9a17e..f9828196 100644 --- a/app/src/main/assets/en/about_privacy_policy_light.html +++ b/app/src/main/assets/en/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -85,6 +88,6 @@ Stoutner will never sell this information nor transfer it to any third party that would use it for advertising or marketing.


-

Revision 1.6, 22 May 2018

+

Revision 1.7, 14 May 2019

\ No newline at end of file diff --git a/app/src/main/assets/en/about_privacy_policy_dark.html b/app/src/main/assets/en/about_privacy_policy_dark.html deleted file mode 100644 index 1ded6ebf..00000000 --- a/app/src/main/assets/en/about_privacy_policy_dark.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser does not collect any user information.

- - -

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.

-
    -
  • 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.

-
    -
  • 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 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.

-
    -
  • Version code (eg. 7)
  • -
  • Version name (eg. 1.6)
  • -
  • Android version (eg. Android 5.1)
  • -
  • Device (eg. Galaxy S6 Edge+ [zenlte])
  • -
  • Manufacturer (eg. Samsung)
  • -
  • Device type (eg. Phone)
  • -
  • CPU make (eg. Samsung)
  • -
  • CPU model (eg. Exynos 7420)
  • -
  • Screen density (eg. 560 dpi)
  • -
  • Screen size (eg. 2560 x 1440)
  • -
  • RAM (eg. 4096 MB)
  • -
  • Native platform (eg. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES version (eg. 3.1)
  • -
  • Device language (eg. English)
  • -
- - -

Direct Communications

-

Users may choose to send direct communications to Stoutner, like email messages and comments on stoutner.com.

- - -

Use of Information

-

Stoutner may use this information to assist in the development of Privacy Browser and communicate the status of the project to users. - Stoutner will never sell this information nor transfer it to any third party that would use it for advertising or marketing.

- -
-

Revision 1.6, 22 May 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_domain_settings_dark.html b/app/src/main/assets/en/guide_domain_settings.html similarity index 70% rename from app/src/main/assets/en/guide_domain_settings_dark.html rename to app/src/main/assets/en/guide_domain_settings.html index 73e661fa..28d90e2b 100644 --- a/app/src/main/assets/en/guide_domain_settings_dark.html +++ b/app/src/main/assets/en/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Secure Web Browsing

+

Secure Web Browsing

Privacy Browser’s default is to browse with JavaScript, cookies, and DOM storage disabled. However, some websites legitimately need these features enabled to function correctly. Domain settings can automatically turn on a specified set of features when visiting a designated domain.

-

+

When visiting a domain that has domain settings specified, the background of the URL text box is green.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/en/guide_domain_settings_light.html b/app/src/main/assets/en/guide_domain_settings_light.html deleted file mode 100644 index 4e9a8956..00000000 --- a/app/src/main/assets/en/guide_domain_settings_light.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - -

Secure Web Browsing

- -

Privacy Browser’s default is to browse with JavaScript, cookies, and DOM storage disabled. - However, some websites legitimately need these features enabled to function correctly. - Domain settings can automatically turn on a specified set of features when visiting a designated domain.

- -

- -

When visiting a domain that has domain settings specified, the background of the URL text box is green.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_javascript_dark.html b/app/src/main/assets/en/guide_javascript.html similarity index 83% rename from app/src/main/assets/en/guide_javascript_dark.html rename to app/src/main/assets/en/guide_javascript.html index 0a03a68d..419dd0b2 100644 --- a/app/src/main/assets/en/guide_javascript_dark.html +++ b/app/src/main/assets/en/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript Is Powerful

+

JavaScript Is Powerful

Back in the early days of the internet, web pages were static, meaning they they contained text and images that were displayed on the screen but didn’t change or interact with the user. Of course, only so much that is interesting can happen with static content. Several different technologies were developed to facilitate dynamic web pages. @@ -34,21 +37,21 @@ The device runs the JavaScript on its local processor and follows the commands of the program, which can animate images on the website, popup a menu, and do many other useful things.

-

JavaScript Is Dangerous

+

JavaScript Is Dangerous

Of course, the concept of running arbitrary programs from a website is potentially dangerous. So there are limitations placed on JavaScript to keep it from doing things like installing viruses. However, it turns out that these limitations are overly broad. Below is a screenshot from webkay, which is a website that demonstrates the type of information that JavaScript can produce about a device. Browser Leaks is another good resource.

-

+

For privacy purposes, the ideal would be to browse the internet with JavaScript disabled. However, there are some websites that legitimately require JavaScript to accomplish their purposes and others that don’t work correctly without JavaScript even though they could be programmed to do so. Privacy Browser addresses this by making it easy to toggle JavaScript on and off. - Tapping the privacy shield will toggle it between blue or yellow - (both of which indicate that JavaScript is disabled) and red (JavaScript enabled). + Tapping the privacy shield will toggle it between blue or yellow + (both of which indicate that JavaScript is disabled) and red (JavaScript enabled). Looking at the different information webkay can collect with JavaScript enabled and disabled is informative.

Browsing the internet with JavaScript disabled, and only enabling it if needed, goes a long way toward protecting privacy. diff --git a/app/src/main/assets/en/guide_javascript_light.html b/app/src/main/assets/en/guide_javascript_light.html deleted file mode 100644 index 0e5c3d62..00000000 --- a/app/src/main/assets/en/guide_javascript_light.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -

JavaScript Is Powerful

- -

Back in the early days of the internet, web pages were static, meaning they they contained text and images that were displayed on the screen but didn’t change or interact with the user. - Of course, only so much that is interesting can happen with static content. Several different technologies were developed to facilitate dynamic web pages. - JavaScript is one of these technologies.

- -

JavaScript is a programming language. Many web servers host programs written in JavaScript, which are sent to devices as part of the web page. - The device runs the JavaScript on its local processor and follows the commands of the program, which can animate images on the website, popup a menu, and do many other useful things.

- - -

JavaScript Is Dangerous

- -

Of course, the concept of running arbitrary programs from a website is potentially dangerous. So there are limitations placed on JavaScript to keep it from doing things like installing viruses. - However, it turns out that these limitations are overly broad. - Below is a screenshot from webkay, which is a website that demonstrates the type of information that JavaScript can produce about a device. - Browser Leaks is another good resource.

- -

- -

For privacy purposes, the ideal would be to browse the internet with JavaScript disabled. - However, there are some websites that legitimately require JavaScript to accomplish their purposes - and others that don’t work correctly without JavaScript even though they could be programmed to do so. - Privacy Browser addresses this by making it easy to toggle JavaScript on and off. - Tapping the privacy shield will toggle it between blue or yellow - (both of which indicate that JavaScript is disabled) and red (JavaScript enabled). - Looking at the different information webkay can collect with JavaScript enabled and disabled is informative.

- -

Browsing the internet with JavaScript disabled, and only enabling it if needed, goes a long way toward protecting privacy. - In addition, JavaScript is used to load much of the annoying advertisements and extra cruft that comes along with most modern websites. - With it disabled, websites will load faster, consume less network traffic, and use less CPU power, which leads to longer battery life.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_local_storage_light.html b/app/src/main/assets/en/guide_local_storage.html similarity index 89% rename from app/src/main/assets/en/guide_local_storage_light.html rename to app/src/main/assets/en/guide_local_storage.html index 280986be..dcc22eba 100644 --- a/app/src/main/assets/en/guide_local_storage_light.html +++ b/app/src/main/assets/en/guide_local_storage.html @@ -1,5 +1,5 @@ + -

First-Party Cookies

+

First-Party Cookies

First-party cookies are set by the website in the URL bar at the top of the page.

@@ -40,10 +43,10 @@

Almost all websites with logins require first-party 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, one of the few legitimate uses for cookies.

-

If first-party cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

+

If first-party cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

-

Third-Party Cookies

+

Third-Party Cookies

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. For example, most website that have advertisements load them from a third-party ad broker, like Google’s Ad Sense. @@ -71,7 +74,7 @@ between first-party and third-party cookies. Thus, enabling first-party cookies will also enable third-party cookies.

-

DOM Storage

+

DOM Storage

Document Object Model storage, also known as web storage, is like cookies on steroids. Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, @@ -79,7 +82,7 @@ Because DOM storage uses JavaScript to read and write data, it cannot be enabled unless JavaScript is also enabled.

-

Form Data

+

Form Data

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. diff --git a/app/src/main/assets/en/guide_local_storage_dark.html b/app/src/main/assets/en/guide_local_storage_dark.html deleted file mode 100644 index cc94112b..00000000 --- a/app/src/main/assets/en/guide_local_storage_dark.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - -

First-Party Cookies

- -

First-party cookies are set by the website in the URL bar at the top of the page.

- -

From the early days of the internet, it became obvious that it would be advantageous for websites to be able to store information on a computer for future access. - For example, a website that displays weather information could ask the user for a zip code, and then store it in a cookie. - The next time the user visited the website, weather information would automatically load for that zip code, without the user having to enter it again.

- -

Like everything else on the web, clever people figured out all types of ways to abuse cookies to do things that users would not approve of if they knew they were happening. - For example, a website can set a cookie with a unique serial number on a device. - Then, every time a user visits the website on that device, it can be linked to a unique profile the server maintains for that serial number, - even if the device connects from different IP addresses.

- -

Almost all websites with logins require first-party 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, one of the few legitimate uses for cookies.

- -

If first-party cookies are enabled but JavaScript is disabled, the privacy icon will be yellow as a warning.

- - -

Third-Party Cookies

- -

Third-party cookies are set by portions of a website that are loaded from servers different from the URL at the top of the page. - For example, most website that have advertisements load them from a third-party ad broker, like Google’s Ad Sense. - Every time the website loads, it requests the ad broker to display an ad. - The ad broker analyzes any information they may have about the user, looks at the current rate advertisers are willing to pay for their ads, and selects the one to display. - The section of the website that displays the ads is loaded from the third-party broker’s server instead of the main server.

- -

Because most of the advertisements on the internet are processed by only a few brokers, - it didn’t take long for them to realize that they could set a tracking cookie on the user’s device and know every place that user goes. - Every time an ad loads from a broker, the first thing it does it check to see if if the device already has a unique serial number in a tracking cookie. - If it does, it looks up the profile for that serial number and makes a note of the new site. - This is why a user can do a search on one website for a product they typically don’t look for, like walnuts, - and then suddenly start seeing advertisements for walnuts on every website they visit.

- -

In addition to ad brokers, social media sites discovered they could get in on the action. - A few years ago, the major social media sites like Facebook and Twitter convinced a large number of websites - that it would be in their best interest to place little social media icons on their pages. - These are not just images. They contain embedded code that links back to the social media site, and, among other things, - loads a third-party cookie on the device. These cookies are placed even if the user does not have an account with the social media platform. - Over time, companies like Facebook (which also runs an ad network) have built up quite a large number of detailed profiles about people who have - never even created an account on their site.

- -

There is no good reason to ever enable third-party cookies. On devices with Android KitKat or older (version <= 4.4.4 or API <= 20), WebView does not - differentiate - between first-party and third-party cookies. Thus, enabling first-party cookies will also enable third-party cookies.

- -

DOM Storage

- -

Document Object Model storage, also known as web storage, is like cookies on steroids. - Whereas the maximum combined storage size for all cookies from a single URL is 4 kilobytes, - DOM storage can hold megabytes per site. - Because DOM storage uses JavaScript to read and write data, it cannot be enabled unless JavaScript is also enabled.

- - -

Form Data

- -

Form data contains information typed into web forms, like user names, addresses, phone numbers, etc., and lists them in a drop-down box on future visits. - Unlike the other forms of local storage, form data is not sent to the web server without specific user interaction. - Beginning in Android Oreo (8.0), WebView’s form data was replaced by the Autofill service. - As such, controls for form data no longer appear on newer Android devices.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_overview_dark.html b/app/src/main/assets/en/guide_overview.html similarity index 82% rename from app/src/main/assets/en/guide_overview_dark.html rename to app/src/main/assets/en/guide_overview.html index 29fc4917..4cda1de3 100644 --- a/app/src/main/assets/en/guide_overview_dark.html +++ b/app/src/main/assets/en/guide_overview.html @@ -1,5 +1,5 @@ + -

True Privacy

+

True Privacy

Privacy Browser is designed to let you take as much control of your privacy as possible while still browsing the internet. When a browser connects to a website, certain pieces of information which are necessary to facilitate the connection are transferred to the server. @@ -37,7 +40,7 @@ Privacy Browser is designed to grant the user as much information and control over these tracking techniques as possible.

-

Android’s WebView Limitations

+

Android’s WebView Limitations

Privacy Browser uses Android’s built-in WebView to render websites. There are some limitations in the controls WebView exposes for managing privacy settings. For example, it isn’t possible to enable some JavaScript commands while disabling others. diff --git a/app/src/main/assets/en/guide_overview_light.html b/app/src/main/assets/en/guide_overview_light.html deleted file mode 100644 index ef717bcc..00000000 --- a/app/src/main/assets/en/guide_overview_light.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

True Privacy

- -

Privacy Browser is designed to let you take as much control of your privacy as possible while still browsing the internet. - When a browser connects to a website, certain pieces of information which are necessary to facilitate the connection are transferred to the server. - For example, the server will receive your IP address and a port number, which are necessary for it to know where to send the response. - This information is often logged by the server, allowing the website developer to produce reports showing how often a webpage was loaded and how many different IP addresses accessed it.

- -

However, most website operators want more information about their visitors, including tracking their web browsing across multiple websites. - There are many different techniques, including requesting or placing extra information on a user’s device, that facilitate this tracking. - Almost all browsers will voluntarily participate in this tracking without informing the user they are doing so. - Privacy Browser is designed to grant the user as much information and control over these tracking techniques as possible.

- - -

Android’s WebView Limitations

- -

Privacy Browser uses Android’s built-in WebView to render websites. There are some limitations in the controls WebView exposes for managing privacy settings. - For example, it isn’t possible to enable some JavaScript commands while disabling others. - In the future, Privacy Browser will switch to a custom WebView called Privacy WebView.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_proxies_dark.html b/app/src/main/assets/en/guide_proxies.html similarity index 88% rename from app/src/main/assets/en/guide_proxies_dark.html rename to app/src/main/assets/en/guide_proxies.html index 1ba63a18..31d810dc 100644 --- a/app/src/main/assets/en/guide_proxies_dark.html +++ b/app/src/main/assets/en/guide_proxies.html @@ -20,11 +20,14 @@ - + + + + -

Proxies and Their Limits

+

Proxies and Their Limits

There are two general categories of bad actors that want to infringe on the privacy of the web: malicious governments with access to ISPs (Internet Service Providers) and mega corporations that run social and advertising networks. @@ -32,7 +35,7 @@ but not from mega corporations (which embed malicious code on web servers).

-

Malicious Governments

+

Malicious Governments

Malicious governments often spy on their citizens to punish dissent or human rights activity. They commonly either operate the local ISPs or they can force them to disclose information showing every IP address that is visited by each user. @@ -44,7 +47,7 @@ and users could be punished because governments assume they are doing something that is prohibited. Thus, proxies can be helpful, but they aren’t a panacea.

-

Mega Corporations

+

Mega Corporations

When a user connects to a web server, the web server can see the user’s IP address. Although it isn’t a perfect science, IP addresses can be turned into physical addresses with a fair amount of accuracy. @@ -65,13 +68,13 @@ and using a browser that is difficult to fingerprint.

-

Using Proxies

+

Using Proxies

Despite their limitations, proxies can be useful in some circumstances. Tor and I2P have Android apps that make it easy to use their proxy networks. When proxying is turned on in Privacy Browser, the app bar will have a light blue background instead of the default light grey. Because traffic is being routed through several proxy nodes, using a layered proxy is often much slower than connecting directly to the internet.

- + \ No newline at end of file diff --git a/app/src/main/assets/en/guide_proxies_light.html b/app/src/main/assets/en/guide_proxies_light.html deleted file mode 100644 index 8e305119..00000000 --- a/app/src/main/assets/en/guide_proxies_light.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - -

Proxies and Their Limits

- -

There are two general categories of bad actors that want to infringe on the privacy of the web: - malicious governments with access to ISPs (Internet Service Providers) and mega corporations that run social and advertising networks. - Proxies like TOR (The Onion Router) and I2P (the Invisible Internet Project) are useful in protecting privacy from malicious governments (which spy on traffic in transit) - but not from mega corporations (which embed malicious code on web servers).

- - -

Malicious Governments

- -

Malicious governments often spy on their citizens to punish dissent or human rights activity. - They commonly either operate the local ISPs or they can force them to disclose information showing every IP address that is visited by each user. - Layered proxies are designed to defeat this infringement of privacy by encrypting the traffic from a user’s device and routing it through multiple servers on the internet - before sending it on to the final destination. - This means that no individual ISP, server, or website, can know both the IP address of the user’s device and the IP address of the final web server. - Malicious governments and the ISPs they control cannot tell which web servers a user is accessing, although they can tell that the user is using a layered proxy service. - In some parts of the world, using proxies could be construed as an evidence of illegal behavior (“If you didn’t have anything to hide you wouldn’t be encrypting your traffic”) - and users could be punished because governments assume they are doing something that is prohibited. Thus, proxies can be helpful, but they aren’t a panacea.

- - -

Mega Corporations

- -

When a user connects to a web server, the web server can see the user’s IP address. - Although it isn’t a perfect science, IP addresses can be turned into physical addresses with a fair amount of accuracy. - Small web servers typically rely on IP addresses to identify the location of the users visiting their site. Proxies are a good solution to mask the user’s location from these servers. - But large mega corporations that own social media and advertising networks use a whole profile of information that is designed to track users across devices and IP addresses. - These profiles employ a variety of techniques to identify users, including JavaScript, cookies, tracking IDs, and browser fingerprinting. - Because the vast majority of the websites on the internet either load an ad from one of the major networks or embed social media icons with their associated JavaScript, - these corporations have built profiles for almost every online user and can track their internet activity across unrelated sites.

- -

They track every site that is visited, everything that is purchased, every credit card that is used to make a purchase, every address that items are shipped to, - and the GPS metadata of every picture that is uploaded to the internet. - They build a profile of a user’s age, gender, marital status, address, political affiliations, religious affiliations, family circumstances, number of pets, - and everything else they can get their hands on. - They even buy up databases of credit card transactions at local stores, so they can track the off-line purchasing patterns of the users in their profiles. - Because they already have much more accurate address information about a user than an IP address discloses, proxies provides no real privacy protection against mega corporations.

- -

The single best privacy protection against mega corporations is to browse the web with JavaScript disabled, followed by blocking ad networks, disabling cookies and DOM storage, - and using a browser that is difficult to fingerprint.

- - -

Using Proxies

- -

Despite their limitations, proxies can be useful in some circumstances. - Tor and I2P - have Android apps that make it easy to use their proxy networks. When proxying is turned on in Privacy Browser, the app bar will have a light blue background instead of the default light grey. - Because traffic is being routed through several proxy nodes, using a layered proxy is often much slower than connecting directly to the internet.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_requests_dark.html b/app/src/main/assets/en/guide_requests.html similarity index 91% rename from app/src/main/assets/en/guide_requests_dark.html rename to app/src/main/assets/en/guide_requests.html index 0f5c33c3..bfd6d8fa 100644 --- a/app/src/main/assets/en/guide_requests_dark.html +++ b/app/src/main/assets/en/guide_requests.html @@ -1,5 +1,5 @@ + -

Resource Requests

+

Resource Requests

When a URL is loaded, it typically makes a number of resource requests for CCS, JavaScript, image, and other files. Details about these requests can be viewed in the Requests activity. The navigation drawer has a link to the Requests activity and also shows how many requests were blocked. Tapping on a request displays details about why it was allowed or blocked.

-

+

Privacy Browser includes four common blocklists based on the Adblock syntax: EasyList, EasyPrivacy, Fanboy’s Annoyance List, and Fanboy’s Social Blocking List. diff --git a/app/src/main/assets/en/guide_requests_light.html b/app/src/main/assets/en/guide_requests_light.html deleted file mode 100644 index 87ac5ad4..00000000 --- a/app/src/main/assets/en/guide_requests_light.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - -

Resource Requests

- -

When a URL is loaded, it typically makes a number of resource requests for CCS, JavaScript, image, and other files. Details about these requests can be viewed in the Requests activity. - The navigation drawer has a link to the Requests activity and also shows how many requests were blocked. Tapping on a request displays details about why it was allowed or blocked.

- -

- -

Privacy Browser includes four common blocklists based on the Adblock syntax: - EasyList, EasyPrivacy, Fanboy’s Annoyance List, and Fanboy’s Social Blocking List. - These blocklists are processed by Privacy Browser into the following 22 sublists, which check resource requests in the order listed.

- -
    -
  1. Main Whitelist
  2. -
  3. Final Whitelist
  4. -
  5. Domain Whitelist
  6. -
  7. Domain Initial Whitelist
  8. -
  9. Domain Final Whitelist
  10. -
  11. Third-Party Whitelist
  12. -
  13. Third-Party Domain Whitelist
  14. -
  15. Third-Party Domain Initial Whitelist
  16. -
  17. Main Blacklist
  18. -
  19. Initial Blacklist
  20. -
  21. Final Blacklist
  22. -
  23. Domain Blacklist
  24. -
  25. Domain Initial Blacklist
  26. -
  27. Domain Final Blacklist
  28. -
  29. Domain Regular Expression Blacklist
  30. -
  31. Third-Party Blacklist
  32. -
  33. Third-Party Initial Blacklist
  34. -
  35. Third-Party Domain Blacklist
  36. -
  37. Third-Party Domain Initial Blacklist
  38. -
  39. Third-Party Regular Expression Blacklist
  40. -
  41. Third-Party Domain Regular Expression Blacklist
  42. -
  43. Regular Expression Blacklist
  44. -
- -

Initial lists check against the beginning of the URL. Final lists check against the end of the URL. Domain lists only check against certain domains. - Third-party lists only apply if the root domain of the request is different than the root domain of the main URL. - Regular expression lists follow the regular expression syntax. Each sublist item has one or more entry. - In the case of domain sublists, the resource request is only checked against the item if the first entry matches the domain of the main URL.

- -

Because of limitations in Android’s WebView, and to speed up processing of requests, Privacy Browser implements a simplified interpretation of the Adblock syntax. - This can sometimes lead to false positives, where resources are allowed or blocked in ways that weren’t intended by the original entry. - A more detailed description of how the blocklist entries are processed is available at stoutner.com.

- -

Privacy Browser has three additional blocklists. - UltraList and UltraPrivacy - block ads and trackers that EasyList and EasyPrivacy do not. The third blocks all third-party requests. - A request is only considered third-party if the base domain of the request is different than the base domain of the URL. - For example, if www.website.com loads a picture from images.website.com, - this is not blocked as a third-party request because they both share the same base domain of website.com. - Blocking all third-party requests increases privacy, but this blocklist is disabled by default because it breaks a large number of websites.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_ssl_certificates_dark.html b/app/src/main/assets/en/guide_ssl_certificates.html similarity index 84% rename from app/src/main/assets/en/guide_ssl_certificates_dark.html rename to app/src/main/assets/en/guide_ssl_certificates.html index 52dfccd5..d0eea92c 100644 --- a/app/src/main/assets/en/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/en/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Connect with Confidence

+

Connect with Confidence

When visiting an encrypted URL (one that begins with HTTPS), the webserver uses an SSL certificate to both encrypt the information sent to the browser and to identify the server. The purpose of the server identification is to prevent a machine located between the browser and the webserver from pretending to be the server and decrypting the information in transit. @@ -36,14 +39,14 @@

Pinning an SSL certificate tells the browser that only one specific SSL certificate is to be trusted for a particular domain. Any other certificate, even if it is valid, will be rejected.

-

+

SSL certificates expire on a specified date, so even pinned SSL certificates will legitimately need to be updated from time to time. As a general rule, pinning SSL certificates probably isn’t needed in the majority of cases. But for those who suspect that powerful organizations may be targeting them, SSL certificate pinning can detect and thwart a MITM attack. Privacy Browser also has the ability to pin IP addresses.

-

+

SSL certificates can be pinned in Domain Settings. Besides protecting against MITM attacks, diff --git a/app/src/main/assets/en/guide_ssl_certificates_light.html b/app/src/main/assets/en/guide_ssl_certificates_light.html deleted file mode 100644 index 73e08222..00000000 --- a/app/src/main/assets/en/guide_ssl_certificates_light.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - -

Connect with Confidence

- -

When visiting an encrypted URL (one that begins with HTTPS), the webserver uses an SSL certificate to both encrypt the information sent to the browser and to identify the server. - The purpose of the server identification is to prevent a machine located between the browser and the webserver from pretending to be the server and decrypting the information in transit. - This type of attack is known as a Man In The Middle (MITM) attack. - SSL certificates are generated by certificate authorities: companies that verify a server’s identity and produce a certificate for a fee. - Android has a list of trusted certificate authorities, and will accept any of their certificates for any website. - It isn’t supposed to be possible for an organization to acquire an SSL certificate for a domain they do not control, - but in practice many governments and large corporations have been able to do so.

- -

Pinning an SSL certificate tells the browser that only one specific SSL certificate is to be trusted for a particular domain. Any other certificate, even if it is valid, will be rejected.

- -

- -

SSL certificates expire on a specified date, so even pinned SSL certificates will legitimately need to be updated from time to time. - As a general rule, pinning SSL certificates probably isn’t needed in the majority of cases. - But for those who suspect that powerful organizations may be targeting them, SSL certificate pinning can detect and thwart a MITM attack. - Privacy Browser also has the ability to pin IP addresses.

- -

- -

SSL certificates can be pinned in Domain Settings. - Besides protecting against MITM attacks, - pinning a self-signed certificate for a device like a wireless router or access point will remove the error message that is normally presented every time its website is loaded. - Tapping on the active tab displays the current website SSL certificate.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_tracking_ids_dark.html b/app/src/main/assets/en/guide_tracking_ids.html similarity index 76% rename from app/src/main/assets/en/guide_tracking_ids_dark.html rename to app/src/main/assets/en/guide_tracking_ids.html index ed492368..ce93eca9 100644 --- a/app/src/main/assets/en/guide_tracking_ids_dark.html +++ b/app/src/main/assets/en/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Do Not Track

+

Do Not Track

A few years ago the W3C (World Wide Web Consortium) created a mechanism for browsers to inform web servers that they would not like to be tracked. This is accomplished by including a DNT (Do Not Track) header with web requests.

@@ -32,7 +35,7 @@

The DNT header doesn't really provide any privacy because most web servers ignore it. For example, Yahoo, Google, Microsoft, and Facebook all ignore at least some DNT headers.

-

URL Modification

+

URL Modification

Privacy Browser removes tracking ID sections of URLs, like ?utm_ from Google Analytics and ?fbclick= from Facebook. URL modification can be turned off in the settings if it is causing issues.

diff --git a/app/src/main/assets/en/guide_tracking_ids_light.html b/app/src/main/assets/en/guide_tracking_ids_light.html deleted file mode 100644 index 36ccc1d0..00000000 --- a/app/src/main/assets/en/guide_tracking_ids_light.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - -

Do Not Track

- -

A few years ago the W3C (World Wide Web Consortium) created a mechanism for browsers to inform web servers that they would not like to be tracked. - This is accomplished by including a DNT (Do Not Track) header with web requests.

- -

The DNT header doesn't really provide any privacy because most web servers ignore it. For example, Yahoo, Google, Microsoft, and Facebook all ignore at least some DNT headers.

- - -

URL Modification

- -

Privacy Browser removes tracking ID sections of URLs, like ?utm_ from Google Analytics and - ?fbclick= from Facebook. URL modification can be turned off in the settings if it is causing issues.

- - \ No newline at end of file diff --git a/app/src/main/assets/en/guide_user_agent_light.html b/app/src/main/assets/en/guide_user_agent.html similarity index 92% rename from app/src/main/assets/en/guide_user_agent_light.html rename to app/src/main/assets/en/guide_user_agent.html index dc4068b8..6f8feb5e 100644 --- a/app/src/main/assets/en/guide_user_agent_light.html +++ b/app/src/main/assets/en/guide_user_agent.html @@ -20,11 +20,14 @@ - + + + + -

Browser Identification

+

Browser Identification

When web browsers connect to websites, they send a user agent, which identifies the browser and the rendering capabilities it possesses. The web server can use this information to decide which version of the website to send to the browser. diff --git a/app/src/main/assets/en/guide_user_agent_dark.html b/app/src/main/assets/en/guide_user_agent_dark.html deleted file mode 100644 index e30e822d..00000000 --- a/app/src/main/assets/en/guide_user_agent_dark.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - -

Browser Identification

- -

When web browsers connect to websites, they send a user agent, which identifies the browser and the rendering capabilities it possesses. - The web server can use this information to decide which version of the website to send to the browser. - For example, many websites have different versions for desktop and mobile browsers.

- -

By default, Privacy Browser uses its own user agent, which is PrivacyBrowser/1.0. This sends a minimum of information to the web server. - Because web servers do not recognize this to be a mobile user agent, they typically display the desktop version of the site.

- -

By comparison, WebView’s default user agent divulges a large amount of information about the hardware and software of the device. - On the Settings screen, selecting WebView Default as the User agent displays the user agent that will be sent. - The screenshot below shows a Pixel 2 XL running Android 10 with Android System WebView 84.0.4147.125 installed. - Most web servers will recognize this as a mobile browser and will display the mobile version of the site if they have one.

- - - -

There is enough information in the user agent that sometimes only a few visitors to a website will be the same. - If the user agent is combined with another piece of non-unique identifying information, often it results in a unique fingerprint. - The Electronic Frontier Foundation created a tool called Panopticlick to demonstrate how much information can be gleaned from these sources. - If this test is run with JavaScript enabled the amount of information that is disclosed increases greatly. - Browser Leaks and Am I Unique are also good sources of information on this topic.

- - - -

There are several preset user agents that match common browsers and operating systems. For browser fingerprinting purposes, anything that is rare is easier to track. - If Privacy Browser becomes common and many people use PrivacyBrowser/1.0 as their user agent, it will be a good choice for privacy. - Firefox or Chrome are the most common user agents, but they auto-update and their version numbers change so quickly that it is likely the user agents included in Privacy Browser - will often be out of step with the majority of user agents in the server logs.

- -

Some websites do not function correctly if they do not recognize the user agent. - Using domain settings to set the user agent to WebView Default, or another user agent that is commonly recognized, usually resolves the problem. - Android’s WebView does not allow the user agent to be blank. If it is, WebView simply sends the default user agent to the server.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/about_changelog_dark.html b/app/src/main/assets/es/about_changelog.html similarity index 99% rename from app/src/main/assets/es/about_changelog_dark.html rename to app/src/main/assets/es/about_changelog.html index 6fbf28f3..aa2872aa 100644 --- a/app/src/main/assets/es/about_changelog_dark.html +++ b/app/src/main/assets/es/about_changelog.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/main/assets/es/about_changelog_light.html b/app/src/main/assets/es/about_changelog_light.html deleted file mode 100644 index fec818f8..00000000 --- a/app/src/main/assets/es/about_changelog_light.html +++ /dev/null @@ -1,690 +0,0 @@ - - - - - - - - - - -

3.5.1 (código de versión 51)

-

28 de agosto de 2020 - API mínimo 19, API dirigido 29

-
    -
  • Corregir un error que provocaba que los nuevos intentos (enlaces de otras aplicaciones) no se cargaran - si Navegador Privado había sido "matado" por el SO en segundo plano.
  • -
  • Corregir un error que causaba que la aplicación se iniciara incorrectamente - si el tema de la aplicación estaba configurado al contrario del tema del sistema operativo.
  • -
- -

3.5 (código de versión 50)

-

18 de agosto de 2020 - API mínimo 19, API dirigido 29

- - -

3.4.1 (código de versión 49)

-

1 de abril de 2020 - API mínimo 19, API dirigido 29

- - -

3.4 (código de versión 48)

-

28 de marzo de 2020 - API mínimo 19, API dirigido 29

- - -

3.3 (código de versión 47)

-

3 de enero de 2020 - API mínimo 19, API dirigido 29

- - -

3.2 (código de versión 46)

-

20 de julio de 2019 - API mínimo 19, API dirigido 28

- - -

3.1 (código de versión 45)

-

27 de mayo de 2019 - API mínimo 19, API dirigido 28

- - -

3.0.1 (código de versión 44)

-

2 de mayo de 2019 - API mínimo 19, API dirigido 28

- - -

3.0 (código de versión 43)

-

26 de abril de 2019 - API mínimo 19, API dirigido 28

-
    -
  • Añadir navegación por pestañas.
  • -
  • Se corrigió un error que provocaba que se cortara la parte inferior de la vista web - cuando se desactivaba el desplazamiento de la barra de aplicaciones.
  • -
  • Se corrigió un error que provocaba que se reiniciara Navegador Privado cada vez que se conectaba/desconectaba un teclado Bluetooth.
  • -
  • Actualizada la traducción al español proporcionada por Jose A. León.
  • -
  • Actualizada la traducción al alemán proporcionada por Bernhard G. Keller.
  • -
  • Actualizada la traducción al italiano proporcionada por Francesco Buratti.
  • -
  • Actualizada la traducción al ruso.
  • -
  • Traducción parcial al turco.
  • -
- -

2.17.1 (código de versión 42)

-

5 de marzo de 2019 - API mínimo 19, API dirigido 28

- - -

2.17 (código de versión 41)

-

27 de febrero de 2019 - API mínimo 19, API dirigido 28

- - -

2.16 (código de versión 40)

-

31 de enero de 2019 - API mínimo 19, API dirigido 28

- - -

2.15.1 (código de versión 39)

-

27 de diciembre de 2018 - API mínimo 19, API dirigido 28

- - -

2.15 (código de versión 38)

-

24 de diciembre de 2018 - API mínimo 19, API dirigido 28

- - -

2.14 (código de versión 37)

-

8 de diciembre de 2018 - API mínimo 19, API dirigido 28

- - -

2.13 (código de versión 36)

-

29 de octubre de 2018 - API mínimo 19, API dirigido 28

- - -

2.12 (código de versión 35)

-

31 de julio de 2018 - API mínimo 19, API dirigido 27

- - -

2.11 (código de versión 34)

-

10 de julio de 2018 - API mínimo 19, API dirigido 27

- - -

2.10 (código de versión 33)

-

24 de mayo de 2018 - API mínimo 19, API dirigido 27

- - -

2.9 (código de versión 32)

-

9 de mayo de 2018 - API mínimo 19, API dirigido 27

- - -

2.8.1 (código de versión 31)

-

1 de marzo de 2018 - API mínimo 19, API dirigido 27

- - -

2.8 (código de versión 30)

-

22 de febrero de 2018 - API mínimo 19, API dirigido 27

- - -

2.7.2 (código de versión 29)

-

22 de noviembre de 2017 - API mínimo 19, API dirigido 26

- - -

2.7.1 (código de versión 28)

-

9 de noviembre de 2017 - API mínimo 19, API dirigido 26

- - -

2.7 (código de versión 27)

-

7 de noviembre de 2017 - API mínimo 19, API dirigido 26

-
    -
  • Añadir un cajón de favoritos al que se accede deslizando desde la derecha.
  • -
  • Evitar que el Modo Noche parpadee sobre un fondo blanco al cargar páginas nuevas.
  • -
  • Actualizar los agentes de usuario.
  • -
  • Incrementar la API dirigido hacia la 26 (Android Oreo, 8.0.0).
  • -
  • Actualizada la traducción al español proporcionada por Jose A. León.
  • -
  • Actualizada la traducción al italiano proporcionada por Francesco Buratti.
  • -
- -

2.6 (código de versión 26)

-

18 de septiembre de 2017 - API mínimo 19, API dirigido 25

- - -

2.5 (código de versión 25)

-

26 de agosto de 2017 - API mínimo 19, API dirigido 25

- - -

2.4 (código de versión 24)

-

23 de junio de 2017 - API mínimo 19, API dirigido 25

- - -

2.3 (código de versión 23)

-

26 de mayo de 2017 - API mínimo 19, API dirigido 25

- - -

2.2 (código de versión 22)

-

27 de abril de 2017 - API mínimo 19, API dirigido 25

- - -

2.1 (código de versión 21)

-

25 de marzo de 2017 - API mínimo 19, API dirigido 25

- - -

2.0.1 (código de versión 20)

-

21 de marzo de 2017 - API mínimo 19, API dirigido 25

- - -

2.0 (código de versión 19)

-

16 de marzo de 2017 - API mínimo 19, API dirigido 25

- - -

1.15 (código de versión 18)

-

11 de febrero de 2017 - API mínimo 19, API dirigido 25

- - -

1.14.1 (código de versión 17)

-

4 de enero de 2017 - API mínimo 19, API dirigido 25

- - -

1.14 (código de versión 16)

-

26 de diciembre de 2016 - API mínimo 19, API dirigido 25

- - -

1.13 (código de versión 15)

-

28 de noviembre de 2016 - API mínimo 19, API dirigido 24

- - -

1.12 (código de versión 14)

-

9 de noviembre de 2016 - API mínimo 19, API dirigido 24

- - -

1.11 (código de versión 13)

-

22 de octubre de 2016 - API mínimo 19, API dirigido 24

- - -

01.10 (código de versión 12)

-

15 de septiembre de 2016 - API mínimo 19, API dirigido 23

-
    -
  • Añadir compatibilidad con Tor Orbot.
  • -
  • Añadir compatibilidad con No rastrear.
  • -
  • Añadir un diálogo para descargas que permite al usuario - modificar el nombre del archivo antes de comenzar la descarga.
  • -
  • Añadir botones opcionales adicionales para cookies, almacenamiento DOM, y datos de formularios.
  • -
  • Actualizar los agentes de usuario y agregar Safari en iOS y OS X.
  • -
  • Añadir StartPage y Qwant a la lista de buscadores.
  • -
  • Traducción al alemán actualizada por Aaron Gerlach.
  • -
- -

1.9.1 (código de versión 11)

-

27 de agosto de 2016 - API mínimo 19, API dirigido 23

-
    -
  • Cambiar las rutas de los imágenes activas para ser relativas para que Navegador Privado sea compatible con F-Droid.
  • -
- -

1.9 (código de versión 10)

-

26 de agosto de 2016 - API mínimo 19, API dirigido 23

- - -

1.8 (código de versión 9)

-

16 de julio de 2016 - API mínimo 19, API dirigido 23

- - -

1.7 (código de versión 8)

-

16 de junio de 2016 - API mínimo 19, API dirigido 23

- - -

1.6 (código de versión 7)

-

11 de mayo de 2016 - API mínimo 15, API dirigido 23

- - -

1.5 (código de versión 6)

-

5 de mayo de 2016 - API mínimo 15, API dirigido 23

-
    -
  • Añadir la opción para deshabilitar “Deslizar para actualizar” para que ciertas páginas web, como Mapas de Google, funcionen correctamente.
  • -
- -

1.4 (código de versión 5)

-

28 de abril de 2016 - API mínimo 15, API dirigido 23

- - -

1.3 (código de versión 4)

-

7 de abril de 2016 - API mínimo 15, API dirigido 23

- - -

1.2 (código de versión 3)

-

23 de marzo de 2016 - API mínimo 15, API dirigido 23

- - -

1.1 (código de versión 2)

-

9 de marzo de 2016 - API mínimo 10, API dirigido 23

-
    -
  • Separar los sabores estándar y gratuito para que Navegador Privado sea compatible con F-Droid.
  • -
- -

1.0 (código de versión 1)

-

24 de febrero de 2016 - API mínimo 10, API dirigido 23

-
    -
  • Controlar JavaScript, almacenamiento DOM, y cookies.
  • -
  • Establecer el estado por defecto de JavaScript, almacenamiento DOM, y cookies.
  • -
  • Borrar almacenamiento DOM y cookies.
  • -
  • Añadir accesos directos a la pantalla de inicio.
  • -
  • Utilizar el sistema de descargas de Android.
  • -
  • Navegar hacia delante y hacia atrás.
  • -
  • Cortar, copiar, y pegar los URL.
  • -
  • Compartir los URL.
  • -
  • Especificar la página principal.
  • -
  • Desplazar la barra de URL.
  • -
  • Mantener la posición en el WebView cuando se gira la pantalla.
  • -
  • Deslizar para actualizar el WebView.
  • -
  • Reproducir videos en pantalla completa (requiere que Javascript sea habilitado).
  • -
  • Opción de “Eliminar y salir” en el menú.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/es/about_contributors_dark.html b/app/src/main/assets/es/about_contributors.html similarity index 89% rename from app/src/main/assets/es/about_contributors_dark.html rename to app/src/main/assets/es/about_contributors.html index bd46d0f6..0057c4dc 100644 --- a/app/src/main/assets/es/about_contributors_dark.html +++ b/app/src/main/assets/es/about_contributors.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/main/assets/es/about_contributors_light.html b/app/src/main/assets/es/about_contributors_light.html deleted file mode 100644 index 7211860e..00000000 --- a/app/src/main/assets/es/about_contributors_light.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - -

Desarrollador principal

-

Navegador Privado es desarrollado principalmente por Soren Stoutner.

- -

Programadores

- Thomas Jensen
- Hendrik Knackstedt - -

Traductores

- Jose A. León: Español
- Thiago Nazareno Conceição Silva de Jesus: Portugués brasileño
- Kévin LE FLOHIC: Francés
- Bernhard G. Keller: Alemán
- Francesco Buratti: Italiano - -

Traductores anteriores

- Stefan Erhardt: Alemán
- Aaron Gerlach: Alemán - -
-
-

Los colaboradores son bienvenidos para enviar tanto código como traducciones.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/about_licenses_light.html b/app/src/main/assets/es/about_licenses.html similarity index 89% rename from app/src/main/assets/es/about_licenses_light.html rename to app/src/main/assets/es/about_licenses.html index ef5cfb4f..faedae76 100644 --- a/app/src/main/assets/es/about_licenses_light.html +++ b/app/src/main/assets/es/about_licenses.html @@ -22,7 +22,10 @@ - + + + + @@ -61,34 +64,34 @@ El archivo modificado se libera bajo la licencia GPLv3+.

Iconos

-

- derivan de security y de language, +

+ derivan de security y de 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+.

-

deriva de elementos de folder y exit_to_app, que son parte del +

deriva de elementos de folder y exit_to_app, que son parte del conjunto de iconos Android Material y son liberados bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de elementos de bookmark y create_new_folder, que son parte del +

deriva de elementos de bookmark y create_new_folder, que son parte del conjunto de iconos Android Material y son liberados bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de create_new_folder, +

deriva de create_new_folder, que es parte del conjunto de iconos Android Material y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de exit_to_app, que es parte del conjunto de iconos Android Material +

deriva de exit_to_app, que es parte del conjunto de iconos Android Material y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de compare, que es parte del conjunto de iconos Android Material +

deriva de compare, que es parte del conjunto de iconos Android Material y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de sort, que es parte del conjunto de iconos Android Material +

deriva de sort, que es parte del conjunto de iconos Android Material y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2019 Soren Stoutner. La imagen resultante se libera bajo la licencia GPLv3+.

-

cookie fue creado por Google. +

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.

@@ -96,64 +99,64 @@ 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 y los nombres originales se muestran a continuación.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/es/about_licenses_dark.html b/app/src/main/assets/es/about_licenses_dark.html deleted file mode 100644 index 0731f5f4..00000000 --- a/app/src/main/assets/es/about_licenses_dark.html +++ /dev/null @@ -1,1065 +0,0 @@ - - - - - - - - - - -

Derechos de autor

-

Navegador Privado tiene derechos de autor © 2015-2020 por Soren Stoutner.

- -

Licencia

-

Navegador Privado está liberado bajo la licencia GPLv3+. - El texto completo de la licencia se encuentra en la parte inferior de este documento (se deja en el idioma original). - El código fuente está disponible en git.stoutner.com.

- -

Listas de bloqueo

-

EasyList y EasyPrivacy - tienen licencia dual bajo las licencias GPLv3+ - y Creative Commons Attribution-ShareAlike 3.0+ Unported. Navegador Privado las incorpora usando la opción GPLv3+.

- -

La lista molesta de Fanboy y la lista de bloqueo social de Fanboy - se liberan bajo la licencia Creative Commons Attribution 3.0 Unported, - la cual es compatible con la GPLv3+. Las listas se incluyen sin cambios en Navegador Privado.

- -

Más información sobre las listas de bloqueo puede encontrarse en la página web de EasyList.

- -

Librerías

-

Navegador Privado está construido con las librerías de AndroidX, - las librerías de Kotlin, - y código del repositorio de Google Material Maven, - que se publican bajo la Licencia Apache 2.0.

- -

El sabor o versión libre de Navegador Privado está construido con anuncios de Firebase, - que se libera bajo la Licencia del Android Software Development Kit.

- -

Clases

-

com.stoutner.privacybrowser.views.CheckedLinearLayout es una versión modificada de una clase incluida en el código fuente de - Android Camera. - El archivo original se liberó bajo la Licencia Apache 2.0. - El archivo modificado se libera bajo la licencia GPLv3+.

- -

Iconos

-

- derivan de security y de 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+.

-

deriva de elementos de folder y exit_to_app, que son parte del - conjunto de iconos Android Material y son liberados bajo la Licencia Apache 2.0. - Copyright de modificaciones © 2017 Soren Stoutner. - La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de elementos de bookmark y create_new_folder, que son parte del - conjunto de iconos Android Material y son liberados bajo la Licencia Apache 2.0. - Copyright de modificaciones © 2017 Soren Stoutner. - La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de create_new_folder, - que es parte del conjunto de iconos Android Material y es liberado bajo la Licencia Apache 2.0. - Copyright de modificaciones © 2017 Soren Stoutner. - La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de exit_to_app, que es parte del conjunto de iconos Android Material - y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. - La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de compare, que es parte del conjunto de iconos Android Material - y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2017 Soren Stoutner. - La imagen resultante se libera bajo la licencia GPLv3+.

-

deriva de sort, que es parte del conjunto de iconos Android Material - y es liberado bajo la Licencia Apache 2.0. Copyright de modificaciones © 2019 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 conjunto de iconos Android Material, - 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 y los nombres originales se muestran a continuación.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

-
- -

GNU General Public License

-

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others' Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/es/about_links_light.html b/app/src/main/assets/es/about_links.html similarity index 70% rename from app/src/main/assets/es/about_links_light.html rename to app/src/main/assets/es/about_links.html index d3cc091e..0dc204d7 100644 --- a/app/src/main/assets/es/about_links_light.html +++ b/app/src/main/assets/es/about_links.html @@ -1,5 +1,5 @@ +

Páginas web

-

+

Noticias

-

+

Hoja de ruta

-

+

Seguimiento de errores y petición de funciones

-

+

Foro

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/es/about_links_dark.html b/app/src/main/assets/es/about_links_dark.html deleted file mode 100644 index 5a89bcbf..00000000 --- a/app/src/main/assets/es/about_links_dark.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

Páginas web

- -

- Noticias

- -

- Hoja de ruta

- -

- Seguimiento de errores y petición de funciones

- -

- Foro

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/es/about_permissions_dark.html b/app/src/main/assets/es/about_permissions.html similarity index 90% rename from app/src/main/assets/es/about_permissions_dark.html rename to app/src/main/assets/es/about_permissions.html index 17e65e21..5a4a7e80 100644 --- a/app/src/main/assets/es/about_permissions_dark.html +++ b/app/src/main/assets/es/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/es/about_permissions_light.html b/app/src/main/assets/es/about_permissions_light.html deleted file mode 100644 index b674b8b5..00000000 --- a/app/src/main/assets/es/about_permissions_light.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - -

Tener acceso completo a la red

-

android.permission.INTERNET

-

Requerido para que WebView consiga acceso a internet. Sin este permiso, Navegador Privado sería “Sin Navegador: Protegiendo su privacidad estando completamente desconectado de internet”.

- -

Instalar accesos directos

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Requerido para añadir accesos directos de páginas web en el escritorio.

- -

Almacenamiento de lectura

-

android.permission.READ_EXTERNAL_STORAGE

-

Requerido para importar la configuración de las carpetas públicas. - En Android Marshmallow (API 23) y posteriores, si se niega este permiso, Privacy Browser puede en cambio importar la configuración desde las carpetas de la aplicación.

- -

Almacenamiento de escritura

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Requerido para exportar la configuración y descargar archivos a las carpetas públicas. - En Android Marshmallow (API 23) y posteriores, si se niega este permiso, Privacy Browser puede en cambio exportar la configuración y almacenar las descargas en las carpetas de la aplicación.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/about_privacy_policy_dark.html b/app/src/main/assets/es/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/es/about_privacy_policy_dark.html rename to app/src/main/assets/es/about_privacy_policy.html index 46369378..4a1469a6 100644 --- a/app/src/main/assets/es/about_privacy_policy_dark.html +++ b/app/src/main/assets/es/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -86,6 +89,6 @@ Stoutner nunca vendrá la información ni la transferirá a ninguna tercera parte que la pudiera usar para publicidad o marketing.


-

Revisión 1.6, 22 de mayo de 2018

+

Revisión 1.7, 14 de mayo de 2019

\ No newline at end of file diff --git a/app/src/main/assets/es/about_privacy_policy_light.html b/app/src/main/assets/es/about_privacy_policy_light.html deleted file mode 100644 index abe6d65e..00000000 --- a/app/src/main/assets/es/about_privacy_policy_light.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - -

Navegador Privado

-

Navegador Privado no recoge ninguna información del usuario.

- - -

Google Play

-

Google Play tiene su propia política de privacidad. - Google proporciona información resumida y anónima de instalación a los desarrolladores, incluyendo el número de instalaciones, organizadas por las siguientes categorías.

-
    -
  • Versión de Android (p.ej. Android 7.1)
  • -
  • Dispositivo (p.ej. Samsung Galaxy S6 [zeroflte])
  • -
  • Tabletas (p.ej. Tabletas de 10" o más)
  • -
  • País (p.ej. Estados Unidos)
  • -
  • Lenguaje (p.ej. Inglés [Estados Unidos])
  • -
  • Versión de app (p.ej. 14)
  • -
  • Proveedor (p.ej. T-Mobile - US)
  • -
- - -

Calificaciones de Google Play

-

Google Play tiene su propia política de privacidad. - Google proporciona a los desarrolladores resúmenes anónimos de la siguiente información relativa a las valoraciones de los usuarios.

-
    -
  • País (p.ej. Estados Unidos)
  • -
  • Lenguaje (p.ej. Inglés)
  • -
  • Versión de app (p.ej. 14)
  • -
  • Versión de Android (p.ej. Android 7.1)
  • -
  • Dispositivo (p.ej. Google Nexux 5X [bullhead])
  • -
  • Tabletas (p.ej. Tabletas de 10" o más)
  • -
- - -

Comentarios de Google Play

-

Google Play tiene su propia política de privacidad. - Además del nombre del comentador, la calificación y el texto del comentario (las cuales están disponibles públicamente), Google proporciona alguna o toda la siguiente información al desarrollador.

-
    -
  • Código de versión (p.ej. 7)
  • -
  • Nombre de versión (p.ej. 1.6)
  • -
  • Versión de Android (p.ej. Android 5.1)
  • -
  • Dispositivo (p.ej. Galaxy S6 Edge+ [zenitel])
  • -
  • Fabricante (p.ej. Samsung)
  • -
  • Tipo de dispositivo (p.ej. Teléfono)
  • -
  • Fabricante de CPU (p.ej. Samsung)
  • -
  • Modelo de CPU (p.ej. Exynos 7420)
  • -
  • Densidad de pantalla (p.ej. 560 dpi)
  • -
  • Tamaño de pantalla (p.ej. 2560 x 1440)
  • -
  • RAM (p.ej. 4096 MB)
  • -
  • Plataforma nativa (p.ej. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Versión de OpenGL ES (p.ej. 3.1)
  • -
  • Lenguaje del dispositivo (p.ej. Inglés)
  • -
- - -

Comunicaciones directas

-

Los usuarios pueden elegir enviar comunicaciones directas a Stoutner, como mensajes de correo electrónico y comentarios en stoutner.com.

- -

Uso de Información

-

Stoutner puede utilizar esta información para ayudar en el desarrollo de Navegador Privado y comunicar el estado del proyecto a los usuarios. - Stoutner nunca vendrá la información ni la transferirá a ninguna tercera parte que la pudiera usar para publicidad o marketing.

- -
-

Revisión 1.6, 22 de mayo de 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_domain_settings_dark.html b/app/src/main/assets/es/guide_domain_settings.html similarity index 73% rename from app/src/main/assets/es/guide_domain_settings_dark.html rename to app/src/main/assets/es/guide_domain_settings.html index dfe37d13..906057df 100644 --- a/app/src/main/assets/es/guide_domain_settings_dark.html +++ b/app/src/main/assets/es/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Navegación web segura

+

Navegación web segura

Por defecto Navegador Privado navega con Javascript, cookies y almacenamiento DOM desactivados. Sin embargo, algunas páginas web necesitan legítimamente estas características para funcionar correctamente. La configuración de dominio puede activar automáticamente un conjunto específico de características al visitar un dominio designado.

-

+

Al visitar un dominio que tiene la configuración de dominio especificada, el fondo de la casilla de texto de la URL es verde.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/es/guide_domain_settings_light.html b/app/src/main/assets/es/guide_domain_settings_light.html deleted file mode 100644 index 607d1e75..00000000 --- a/app/src/main/assets/es/guide_domain_settings_light.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Navegación web segura

- -

Por defecto Navegador Privado navega con Javascript, cookies y almacenamiento DOM desactivados. - Sin embargo, algunas páginas web necesitan legítimamente estas características para funcionar correctamente. - La configuración de dominio puede activar automáticamente un conjunto específico de características al visitar un dominio designado.

- -

- -

Al visitar un dominio que tiene la configuración de dominio especificada, el fondo de la casilla de texto de la URL es verde.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_javascript_dark.html b/app/src/main/assets/es/guide_javascript.html similarity index 84% rename from app/src/main/assets/es/guide_javascript_dark.html rename to app/src/main/assets/es/guide_javascript.html index f8532a6b..d3936f48 100644 --- a/app/src/main/assets/es/guide_javascript_dark.html +++ b/app/src/main/assets/es/guide_javascript.html @@ -1,5 +1,5 @@ + -

Javascript es poderoso

+

Javascript es poderoso

En los principios de internet las páginas web eran estáticas, sólo contenían textos e imágenes que eran mostradas en la pantalla y no podían cambiarse o interactuar con el usuario. Por supuesto, nada muy interesante puede pasar con contenido estático. Se desarrollaron diferentes tecnologías para facilitar páginas web dinámicas. Javascript es una de estas tecnologías.

@@ -36,19 +39,19 @@ y hacer muchas otras cosas útiles.

-

Javascript es peligroso

+

Javascript es peligroso

Por supuesto, el concepto de ejecutar programas arbitrarios de un sitio web es potencialmente peligroso. Es por ello que hay limitaciones en Javascript para evitar que haga cosas como instalar virus. Sin embargo, resulta que estas limitaciones son demasiado amplias. Abajo tenemos una captura de pantalla de la web webkay, que es una web que muestra el tipo de información que Javascript puede producir sobre un dispositivo. Browser Leaks es otro buen recurso.

-

+

Con fines de privacidad, lo ideal sería navegar por internet con Javascript deshabilitado. Sin embargo, hay algunas páginas web que requieren legítimamente de Javascript para lograr sus propósitos, y otras que no funcionan correctamente sin Javascript aunque pudieran programarse para hacerlo así. Navegador Privado aborda esto haciendo sencillo el poder activar y desactivar Javascript. - Tocando el escudo de privacidad alternará entre azul o amarillo - (los cuales indican que Javascript está deshabilitado) y rojo (Javascript habilitado). + Tocando el escudo de privacidad alternará entre azul o amarillo + (los cuales indican que Javascript está deshabilitado) y rojo (Javascript habilitado). Revisar la diferente información que webkay puede recoger con Javascript habilitado y deshabilitado es informativo.

Navegar por internet con Javascript desactivado, y activarlo únicamente cuando se necesite, contribuye en gran medida en la protección de la privacidad del usuario. diff --git a/app/src/main/assets/es/guide_javascript_light.html b/app/src/main/assets/es/guide_javascript_light.html deleted file mode 100644 index c76e62af..00000000 --- a/app/src/main/assets/es/guide_javascript_light.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -

Javascript es poderoso

- -

En los principios de internet las páginas web eran estáticas, sólo contenían textos e imágenes que eran mostradas en la pantalla y no podían cambiarse o interactuar con el usuario. - Por supuesto, nada muy interesante puede pasar con contenido estático. Se desarrollaron diferentes tecnologías para facilitar páginas web dinámicas. Javascript es una de estas tecnologías.

- -

Javascript es un lenguaje de programación. Muchos servidores web alojan programas escritos en Javascript, que son enviados a los dispositivos como parte de la página web. - El dispositivo ejecuta este Javascript en su procesador local y sigue los comandos del programa, el cual puede animar imágenes en dicho sitio web, abrir un menú emergente, - y hacer muchas otras cosas útiles.

- - -

Javascript es peligroso

- -

Por supuesto, el concepto de ejecutar programas arbitrarios de un sitio web es potencialmente peligroso. Es por ello que hay limitaciones en Javascript para evitar que haga cosas como instalar virus. - Sin embargo, resulta que estas limitaciones son demasiado amplias. Abajo tenemos una captura de pantalla de la web webkay, - que es una web que muestra el tipo de información que Javascript puede producir sobre un dispositivo. Browser Leaks es otro buen recurso.

- -

- -

Con fines de privacidad, lo ideal sería navegar por internet con Javascript deshabilitado. - Sin embargo, hay algunas páginas web que requieren legítimamente de Javascript para lograr sus propósitos, - y otras que no funcionan correctamente sin Javascript aunque pudieran programarse para hacerlo así. Navegador Privado aborda esto haciendo sencillo el poder activar y desactivar Javascript. - Tocando el escudo de privacidad alternará entre azul o amarillo - (los cuales indican que Javascript está deshabilitado) y rojo (Javascript habilitado). - Revisar la diferente información que webkay puede recoger con Javascript habilitado y deshabilitado es informativo.

- -

Navegar por internet con Javascript desactivado, y activarlo únicamente cuando se necesite, contribuye en gran medida en la protección de la privacidad del usuario. - Además, JavaScript se utiliza para cargar gran parte de los anuncios molestos y el arsenal adicional que viene junto con la mayoría de las páginas web modernas. - Con esta opción desactivada, las páginas web se cargarán más rápido, consumirán menos tráfico de red y usarán menos energía de la CPU, lo que se traduce en una mayor duración de la batería.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_local_storage_dark.html b/app/src/main/assets/es/guide_local_storage.html similarity index 90% rename from app/src/main/assets/es/guide_local_storage_dark.html rename to app/src/main/assets/es/guide_local_storage.html index 8634221a..7ca21a52 100644 --- a/app/src/main/assets/es/guide_local_storage_dark.html +++ b/app/src/main/assets/es/guide_local_storage.html @@ -1,5 +1,5 @@ + -

Cookies de primera parte

+

Cookies de primera parte

Las cookies de primera parte son cookies establecidas por la página web en la barra URL de la parte superior de la página.

@@ -43,10 +46,10 @@ Así es como se aseguran de que sigues siendo tu al moverte de una página a otra en el sitio, y es, en mi opinión, uno de los pocos usos legítimos de las cookies.

Si las cookies de primera parte están habilitadas pero Javascript está deshabilitado, - el icono de privacidad será amarillo como advertencia.

+ el icono de privacidad será amarillo como advertencia.

-

Cookies de terceras partes

+

Cookies de terceras partes

Las cookies de terceras partes son establecidas por ciertas partes de una página web que son cargadas desde servidores diferentes a la URL de la parte superior de la página. Por ejemplo, la mayoría de páginas web que tienen anuncios los cargan desde una compañía de publicidad de terceros, como Ad Sense de Google. @@ -74,7 +77,7 @@ y cookies de teceras partes. Por lo tanto, si se habilitan las cookies de primera parte también se habilitarán las de teceras partes.

-

Almacenamiento DOM

+

Almacenamiento DOM

Document Object Model storage (o Almacenamiento de modelos de objetos de documento), también conocido como almacenamiento web, es como cookies con esteroides. Mientras que el tamaño máximo de almacenamiento combinado para todas las cookies de una única URL es de 4 kilobytes, el almacenamiento DOM puede contener @@ -82,7 +85,7 @@ Ya que el almacenamiento DOM usa JavaScript para leer y escribir datos, no puede activarse a menos que JavaScript esté también activado.

-

Datos de formulario

+

Datos de formulario

Los datos de formulario contienen información escrita en formularios web, como nombres de usuario, direcciones, números de teléfono, etc., y los enumera en un cuadro desplegable en futuras visitas. A diferencia de las otras formas de almacenamiento local, los datos de los formularios no se envían al servidor web sin la interacción específica del usuario. diff --git a/app/src/main/assets/es/guide_local_storage_light.html b/app/src/main/assets/es/guide_local_storage_light.html deleted file mode 100644 index 9639c5f7..00000000 --- a/app/src/main/assets/es/guide_local_storage_light.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - -

Cookies de primera parte

- -

Las cookies de primera parte son cookies establecidas por la página web en la barra URL de la parte superior de la página.

- -

Desde los primeros días de internet, se hizo evidente que sería ventajoso para las páginas web el poder almacenar información en un ordenador para un acceso futuro. - Por ejemplo, una página web que muestre información meteorológica podría solicitar al usuario un código postal y luego almacenarlo en una cookie. - La próxima vez que el usuario visite la página web, la información meteorológica se cargará automáticamente para ese código postal, sin que el usuario tenga que volver a introducirlo.

- -

Como todo en la web, gente inteligente descubrió todo tipo de maneras de abusar de las cookies para hacer cosas que los usuarios no aprobarían si supieran que estaban ocurriendo. - Por ejemplo, una página web puede establecer una cookie con un número de serie único en un dispositivo. - Luego, cada vez que un usuario visite la página web con ese dispositivo, puede vincularse a un perfil único que el servidor mantiene para ese número de serie, - incluso si el dispositivo se conecta desde diferentes direcciones IP.

- -

Casi todas las páginas web con inicios de sesión requieren que las cookies de primera parte estén habilitadas para que el usuario pueda iniciar sesión. - Así es como se aseguran de que sigues siendo tu al moverte de una página a otra en el sitio, y es, en mi opinión, uno de los pocos usos legítimos de las cookies.

- -

Si las cookies de primera parte están habilitadas pero Javascript está deshabilitado, - el icono de privacidad será amarillo como advertencia.

- - -

Cookies de terceras partes

- -

Las cookies de terceras partes son establecidas por ciertas partes de una página web que son cargadas desde servidores diferentes a la URL de la parte superior de la página. - Por ejemplo, la mayoría de páginas web que tienen anuncios los cargan desde una compañía de publicidad de terceros, como Ad Sense de Google. - Cada vez que se carga la página web, solicita a la compañía de publicidad que muestre un anuncio. - La compañía de publicidad analiza cualquier información que pueda tener sobre el usuario, analiza la tasa actual que los anunciantes están dispuestos a pagar por sus anuncios, - y selecciona uno para mostrar. La sección de la página web que muestra los anuncios es cargada desde el servidor de la compañía de terceros en vez de hacerlo desde el servidor principal.

- -

Ya que la mayoría de los anuncios en internet se muestran desde solo unas pequeñas compañías, - no les llevó a éstas mucho tiempo en darse cuenta que podrían establecer una cookie de seguimiento en el dispositivo del usuario y así conocer cualquier lugar al que el usuario va. - Cada vez que un anuncio se carga desde una compañía, lo primero que hace es comprobar si el dispositivo ya tiene un único número de serie en una cookie de seguimiento. - Si es así, busca el perfil para ese número de serie y toma nota del nuevo sitio web. - Es por esto que un usuario puede hacer una búsqueda en una página web por un producto que normalmente no busca, como nueces, - y luego de pronto empieza a ver anuncios de nueces en cada página web que visita.

- -

Además de compañías de publicidad, las páginas de redes sociales descubrieron que también podían entrar en acción. - Hace unos pocos años, las principales páginas de redes sociales como Facebook y Twitter convencieron a un gran número de páginas web - que sería por su mejor interés colocar pequeños iconos de redes sociales en sus páginas. Éstos no son sólo imágenes. - Contienen código incrustado que enlazan de nuevo a la web de la red social, - y entre otras cosas cargan una cookie de terceras partes en el dispositivo. Estas cookies se colocan aunque el usuario no tenga una cuenta con la plataforma de la red social. - A través del tiempo, compañías como Facebook (la cual también corre una red de anuncios) han construído un gran número de perfiles detallados sobre personas que - ni siquiera han creado una cuenta en su web. - -

No existe ninguna buena razón para habilitar cookies de terceras partes. En dispositivos con Android KitKat o anteriores (versión <= 4.4.4 o API <= 20), WebView no - distingue entre cookies de primera parte - y cookies de teceras partes. Por lo tanto, si se habilitan las cookies de primera parte también se habilitarán las de teceras partes.

- - -

Almacenamiento DOM

- -

Document Object Model storage (o Almacenamiento de modelos de objetos de documento), también conocido como almacenamiento web, es como cookies con esteroides. - Mientras que el tamaño máximo de almacenamiento combinado para todas las cookies de una única URL es de 4 kilobytes, el almacenamiento DOM puede contener - megabytes por sitio. - Ya que el almacenamiento DOM usa JavaScript para leer y escribir datos, no puede activarse a menos que JavaScript esté también activado.

- - -

Datos de formulario

- -

Los datos de formulario contienen información escrita en formularios web, como nombres de usuario, direcciones, números de teléfono, etc., y los enumera en un cuadro desplegable en futuras visitas. - A diferencia de las otras formas de almacenamiento local, los datos de los formularios no se envían al servidor web sin la interacción específica del usuario. - A partir de Android Oreo (8.0), los datos de formulario de WebView fueron reemplazados por el - servicio Autofill. - Como tal, los controles para los datos de formulario ya no aparecen en los dispositivos Android más nuevos.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_overview_dark.html b/app/src/main/assets/es/guide_overview.html similarity index 83% rename from app/src/main/assets/es/guide_overview_dark.html rename to app/src/main/assets/es/guide_overview.html index 2ae4fcdd..44d4f151 100644 --- a/app/src/main/assets/es/guide_overview_dark.html +++ b/app/src/main/assets/es/guide_overview.html @@ -1,5 +1,5 @@ + -

Verdadera privacidad

+

Verdadera privacidad

Navegador Privado está diseñado para ofrecerte todo el control posible de tu privacidad mientras navegas por internet. Cuando conectas a un sitio web, parte de la información que es necesaria para facilitar la conexión son transferidas al servidor. @@ -40,7 +43,7 @@ Navegador Privado está diseñado para ofrecer al usuario toda la información y control sobre estas técnicas de rastreo como sea posible.

-

Limitaciones del WebView de Android

+

Limitaciones del WebView de Android

Navegador Privado usa el WebView que incorpora Android para interpretar los sitios web. Existen algunas limitaciones en los controles que WebView expone para administrar la configuración de privacidad. diff --git a/app/src/main/assets/es/guide_overview_light.html b/app/src/main/assets/es/guide_overview_light.html deleted file mode 100644 index feeba621..00000000 --- a/app/src/main/assets/es/guide_overview_light.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - -

Verdadera privacidad

- -

Navegador Privado está diseñado para ofrecerte todo el control posible de tu privacidad mientras navegas por internet. - Cuando conectas a un sitio web, parte de la información que es necesaria para facilitar la conexión son transferidas al servidor. - Por ejemplo, el servidor recibirá tu dirección IP y un número de puerto, los cuales son necesarios, así sabe dónde enviar la respuesta. - Esta información es a menudo registrada por el servidor, - permitiendo al desarrollador del sitio web realizar informes mostrando las veces que ha sido cargada una web y cuántas diferentes direcciones IP accedieron a ella.

- -

Sin embargo, la mayoría de operadores de un sitio web quieren rastrear tu navegación web a través de muchas webs, no sólo en un servidor. - Existen muchas técnicas que usan para conseguirlo. Algunas de ellas solicitan o colocan información extra en tu dispositivo que facilita este rastreo. - Casi todos los navegadores participarán voluntariamente en este rastreo sin informar al usuario de lo que están haciendo. - Navegador Privado está diseñado para ofrecer al usuario toda la información y control sobre estas técnicas de rastreo como sea posible.

- - -

Limitaciones del WebView de Android

- -

Navegador Privado usa el WebView que incorpora Android para interpretar los sitios web. - Existen algunas limitaciones en los controles que WebView expone para administrar la configuración de privacidad. - Por ejemplo, no es posible habilitar algunos comandos JavaScript mientras que se deshabilitan otros. - En el futuro, Navegador Privado cambiará a un WebView personalizado llamado WebView Privado.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_proxies_dark.html b/app/src/main/assets/es/guide_proxies.html similarity index 89% rename from app/src/main/assets/es/guide_proxies_dark.html rename to app/src/main/assets/es/guide_proxies.html index ae8c1c4c..55e95fdc 100644 --- a/app/src/main/assets/es/guide_proxies_dark.html +++ b/app/src/main/assets/es/guide_proxies.html @@ -22,11 +22,14 @@ - + + + + -

Proxis y sus límites

+

Proxis y sus límites

Existen dos categorías generales de malos actores que quieren infringir la privacidad de la web: gobiernos maliciosos con acceso a ISPs (Proveedores de Servicios de Internet) y grandes corporaciones que ofrecen redes sociales y de publicidad. @@ -34,7 +37,7 @@ pero no de las mega corporaciones (que incrustan código malicioso en los servidores web).

-

Gobiernos maliciosos

+

Gobiernos maliciosos

Los gobiernos maliciosos a menudo espían a sus ciudadanos para castigar la disidencia o la actividad de derechos humanos. Normalmente suelen operar los ISPs locales o los fuerzan a revelar información mostrando cada dirección IP que visita cada usuario. @@ -47,7 +50,7 @@ y los usuarios podrían ser castigados porque los gobiernos asumen que están haciendo algo que está prohibido. Por lo tanto, los proxis pueden ser útiles, pero no son una panacea.

-

Grandes corporaciones

+

Grandes corporaciones

Cuando un usuario se conecta a un servidor web, éste puede ver la dirección IP del usuario. Aunque esto no es una ciencia perfecta, las direcciones IP se pueden convertir a direcciones físicas con bastante precisión. @@ -73,7 +76,7 @@ inhabilitar cookies y almacenamiento DOM, y usar un navegador del que sea difícil recoger huellas.

-

Uso de Proxis

+

Uso de Proxis

A pesar de sus limitaciones, los proxis pueden ser útiles en algunas circunstancias. Tor e I2P @@ -81,6 +84,6 @@ la barra de aplicaciones tendrá un fondo azul claro en lugar del gris claro predeterminado. Debido a que el tráfico está siendo enrutado a través de varios nodos proxy, usar un proxy en capas es a menudo mucho más lento que conectarse directamente a Internet.

- + \ No newline at end of file diff --git a/app/src/main/assets/es/guide_proxies_light.html b/app/src/main/assets/es/guide_proxies_light.html deleted file mode 100644 index 8e22ae84..00000000 --- a/app/src/main/assets/es/guide_proxies_light.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - -

Proxis y sus límites

- -

Existen dos categorías generales de malos actores que quieren infringir la privacidad de la web: - gobiernos maliciosos con acceso a ISPs (Proveedores de Servicios de Internet) y grandes corporaciones que ofrecen redes sociales y de publicidad. - Los proxies como TOR (The Onion Router) e I2P (the Invisible Internet Project) son útiles para proteger la privacidad frente a los gobiernos maliciosos (que espían el tráfico en tránsito) - pero no de las mega corporaciones (que incrustan código malicioso en los servidores web).

- - -

Gobiernos maliciosos

- -

Los gobiernos maliciosos a menudo espían a sus ciudadanos para castigar la disidencia o la actividad de derechos humanos. - Normalmente suelen operar los ISPs locales o los fuerzan a revelar información mostrando cada dirección IP que visita cada usuario. - Los proxis en capas están diseñados para derrotar esta violación de la privacidad mediante el cifrado del tráfico del dispositivo de un usuario - y su enrutamiento a través de múltiples servidores en Internet antes de enviarlo al destino final. - Esto significa que ningún ISP, servidor o sitio web individual puede conocer tanto la dirección IP del dispositivo del usuario como la dirección IP del servidor web final. - Los gobiernos malintencionados y los ISP que ellos controlan no pueden saber a qué servidores web está accediendo un usuario, - aunque sí pueden saber que el usuario está utilizando un servicio proxy en capas. - En algunas partes del mundo, el uso de proxis podría ser interpretado como una evidencia de comportamiento ilegal (“Si no tuvieras nada que ocultar no estarías cifrando tu tráfico”) - y los usuarios podrían ser castigados porque los gobiernos asumen que están haciendo algo que está prohibido. Por lo tanto, los proxis pueden ser útiles, pero no son una panacea.

- - -

Grandes corporaciones

- -

Cuando un usuario se conecta a un servidor web, éste puede ver la dirección IP del usuario. - Aunque esto no es una ciencia perfecta, las direcciones IP se pueden convertir a direcciones físicas con bastante precisión. - Los pequeños servidores web suelen depender de las direcciones IP para identificar la ubicación de los usuarios que visitan su sitio. - Los proxis son una buena solución para enmascarar la ubicación del usuario desde estos servidores. - Pero las más grandes corporaciones que poseen medios sociales y redes de publicidad usan un perfil completo de información - diseñado para rastrear a los usuarios a través de los dispositivos y direcciones IP. - Estos perfiles emplean una variedad de técnicas para identificar a los usuarios, incluyendo Javascript, cookies, IDs de seguimiento, - y huellas del navegador. - Debido a que la gran mayoría de páginas web en internet, o cargan un anuncio de una de las principales redes, o integran iconos de medios sociales con su Javascript asociado, - estas corporaciones han creado perfiles para casi todos los usuarios en línea y pueden rastrear su actividad en internet a través de sitios que no están relacionados.

- -

Ellos rastrean cada sitio web visitado, todo lo que se compra, cada tarjeta de crédito que es usada para realizar una compra, cada dirección a la que se envían los artículos, - y los metadatos GPS de cada imagen que se sube a internet. - Construyen un perfil de la edad del usuario, género, estado civil, dirección, afiliaciones políticas, afiliaciones religiosas, circunstancias familiares, número de mascotas, - y cualquier otra cosa que caiga en sus manos. - Incluso compran bases de datos de transacciones con tarjeta de crédito en tiendas locales, - para así poder rastrear de los usuarios en sus perfiles los patrones de compra que hacen cuando no están conectados. - Debido a que tienen ya una información de dirección mucho más precisa sobre un usuario que la que revela una dirección IP, - los proxis no proporcionan ninguna protección real de privacidad contra las mega corporaciones.

- -

La única mejor protección de la privacidad contra las grandes corporaciones es navegar por la web con Javascript deshabilitado, seguido de bloquear redes publicitarias, - inhabilitar cookies y almacenamiento DOM, y usar un navegador del que sea difícil recoger huellas.

- - -

Uso de Proxis

- -

A pesar de sus limitaciones, los proxis pueden ser útiles en algunas circunstancias. - Tor e I2P - tienen aplicaciones Android que facilitan el uso de sus redes de proxy. Cuando se activa el proxy en Navegador Privado, - la barra de aplicaciones tendrá un fondo azul claro en lugar del gris claro predeterminado. - Debido a que el tráfico está siendo enrutado a través de varios nodos proxy, usar un proxy en capas es a menudo mucho más lento que conectarse directamente a Internet.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_requests_dark.html b/app/src/main/assets/es/guide_requests.html similarity index 91% rename from app/src/main/assets/es/guide_requests_dark.html rename to app/src/main/assets/es/guide_requests.html index fd14918f..bbc0e106 100644 --- a/app/src/main/assets/es/guide_requests_dark.html +++ b/app/src/main/assets/es/guide_requests.html @@ -1,5 +1,5 @@ + -

Peticiones de recursos

+

Peticiones de recursos

Cuando se carga una URL, normalmente realiza una serie de peticiones de recursos para CCS, JavaScript, imágenes y otros archivos. Los detalles sobre estas solicitudes se pueden ver en la Actividad de peticiones. El cajón de navegación tiene un enlace a la Actividad de peticiones y también muestra cuántas órdenes se bloquearon. Al tocar una solicitud se muestran los detalles de por qué se ha permitido o bloqueado.

-

+

Navegador Privado incluye cuatro listas de bloqueo comunes basadas en la sintaxis de Adblock: EasyList, EasyPrivacy, Lista molesta de Fanboy y Lista de bloqueo social de Fanboy. diff --git a/app/src/main/assets/es/guide_requests_light.html b/app/src/main/assets/es/guide_requests_light.html deleted file mode 100644 index 3693a53b..00000000 --- a/app/src/main/assets/es/guide_requests_light.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - -

Peticiones de recursos

- -

Cuando se carga una URL, normalmente realiza una serie de peticiones de recursos para CCS, JavaScript, imágenes y otros archivos. - Los detalles sobre estas solicitudes se pueden ver en la Actividad de peticiones. El cajón de navegación tiene un enlace a la Actividad de peticiones y también muestra cuántas órdenes se bloquearon. - Al tocar una solicitud se muestran los detalles de por qué se ha permitido o bloqueado.

- -

- -

Navegador Privado incluye cuatro listas de bloqueo comunes basadas en la sintaxis de Adblock: - EasyList, EasyPrivacy, Lista molesta de Fanboy y Lista de bloqueo social de Fanboy. - Estas listas de bloqueo son procesadas por Navegador Privado en las siguientes 22 sublistas, que verifican las solicitudes de recursos en el orden listado.

- -
    -
  1. Lista blanca principal
  2. -
  3. Lista blanca final
  4. -
  5. Lista blanca de dominios
  6. -
  7. Lista blanca inicial de dominios
  8. -
  9. Lista blanca final de dominios
  10. -
  11. Lista blanca de terceros
  12. -
  13. Lista blanca de dominios de terceros
  14. -
  15. Lista blanca inicial de dominios de terceros
  16. -
  17. Lista negra principal
  18. -
  19. Lista negra inicial
  20. -
  21. Lista negra final
  22. -
  23. Lista negra de dominios
  24. -
  25. Lista negra inicial de dominios
  26. -
  27. Lista negra final de dominios
  28. -
  29. Lista negra de expresiones regulares de dominios
  30. -
  31. Lista negra de terceros
  32. -
  33. Lista negra inicial de terceros
  34. -
  35. Lista negra de dominios de terceros
  36. -
  37. Lista negra inicial de dominios de terceros
  38. -
  39. Lista negra de expresiones regulares de terceros
  40. -
  41. Lista negra de expresiones regulares de dominios de terceros
  42. -
  43. Lista negra de expresiones regulares
  44. -
- -

Las listas iniciales se comparan con el principio de la URL. Las listas finales se comparan con el final de la URL. Las listas de dominios sólo se comparan con ciertos dominios. - Las listas de terceras partes sólo se aplican si el dominio raíz de la solicitud es diferente del dominio raíz de la URL principal. - Las listas de expresiones regulares siguen la sintaxis de las expresiones regulares. - Cada elemento de la sublista tiene una o más entradas. - En el caso de sublistas de dominio, la solicitud de recurso sólo se compara con el artículo si la primera entrada coincide con el dominio de la URL principal.

- -

Debido a las limitaciones del WebView de Android, y para acelerar el procesamiento de las solicitudes, Navegador Privado implementa una interpretación simplificada de la sintaxis de Adblock. - Esto puede conducir a veces a falsos positivos, en los que los recursos se permiten o bloquean de formas que no estaban previstas en la entrada original. - Una descripción más detallada de cómo se procesan las entradas de la lista de bloqueo está disponible en stoutner.com.

- -

Navegador Privado tiene tres listas de bloqueo adicionales. - UltraList y UltraPrivacy - bloquean los anuncios y rastreadores que EasyList y EasyPrivacy no bloquea. La tercera bloquea todas las peticiones de terceras partes. - Una solicitud sólo se considera de terceras partes si el dominio base de la solicitud es diferente del dominio base de la URL. - Por ejemplo, si www.website.com carga una imagen de images.website.com, - esto no se bloquea como petición de una tercera parte porque ambos comparten el mismo dominio base de website.com. - El bloqueo de todas las solicitudes de terceras partes aumenta la privacidad, pero esta lista de bloqueo está desactivada por defecto porque rompe un gran número de páginas web.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_ssl_certificates_dark.html b/app/src/main/assets/es/guide_ssl_certificates.html similarity index 85% rename from app/src/main/assets/es/guide_ssl_certificates_dark.html rename to app/src/main/assets/es/guide_ssl_certificates.html index cf7bdbd3..d9685463 100644 --- a/app/src/main/assets/es/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/es/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Conectar con confianza

+

Conectar con confianza

Al visitar una URL cifrada (que empieza con HTTPS), el servidor web usa un certificado SSL para cifrar tanto la información enviada al navegador como asimismo para identificar al servidor. El propósito de la identificación del servidor es para prevenir que una máquina ubicada entre el navegador y el servidor web pretenda ser el servidor y descifrar la información en tránsito. @@ -39,14 +42,14 @@

Al fijar un certificado SSL se le indica al navegador que sólo se puede confiar en un certificado SSL específico para un dominio en particular. Cualquier otro certificado, aunque sea válido, será rechazado.

-

+

Los certificados SSL expiran en una fecha especificada, por lo que incluso los certificados SSL fijados necesitarán legítimamente ser actualizados de vez en cuando. Como regla general, fijar los certificados SSL probablemente no sea necesario en la mayoría de los casos. Pero para aquellos que sospechan que organizaciones poderosas puedan estar apuntando hacia ellos, la fijación de certificados SSL puede detectar y frustar un ataque MITM. Navegador Privado también tiene la capacidad de fijar direcciones IP.

-

+

Los certificados SSL pueden ser fijados en Configuración de Dominios. Además de proteger contra ataques MITM, diff --git a/app/src/main/assets/es/guide_ssl_certificates_light.html b/app/src/main/assets/es/guide_ssl_certificates_light.html deleted file mode 100644 index b65280a3..00000000 --- a/app/src/main/assets/es/guide_ssl_certificates_light.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - -

Conectar con confianza

- -

Al visitar una URL cifrada (que empieza con HTTPS), el servidor web usa un certificado SSL para cifrar tanto la información enviada al navegador como asimismo para identificar al servidor. - El propósito de la identificación del servidor es para prevenir que una máquina ubicada entre el navegador y el servidor web pretenda ser el servidor y descifrar la información en tránsito. - Este clase de ataque es conocido como Hombre en Medio (MITM en sus iniciales en inglés). - Los certificados SSL son generados por las autoridades certificadoras: compañías que verifican la identidad de un servidor y producen un certificado a cambio de una tarifa. - Android tiene una lista de autoridades certificadoras de confianza y aceptará cualquiera de sus certificados para cualquier página web. - Se supone que no es posible que una organización adquiera un certificado SSL para un dominio que no controla, - pero en la práctica muchos gobiernos y grandes corporaciones han sido capaces de hacerlo.

- -

Al fijar un certificado SSL se le indica al navegador que sólo se puede confiar en un certificado SSL específico para un dominio en particular. - Cualquier otro certificado, aunque sea válido, será rechazado.

- -

- -

Los certificados SSL expiran en una fecha especificada, por lo que incluso los certificados SSL fijados necesitarán legítimamente ser actualizados de vez en cuando. - Como regla general, fijar los certificados SSL probablemente no sea necesario en la mayoría de los casos. - Pero para aquellos que sospechan que organizaciones poderosas puedan estar apuntando hacia ellos, la fijación de certificados SSL puede detectar y frustar un ataque MITM. - Navegador Privado también tiene la capacidad de fijar direcciones IP.

- -

- -

Los certificados SSL pueden ser fijados en Configuración de Dominios. - Además de proteger contra ataques MITM, - fijar un certificado autofirmado para un dispositivo como un router inalámbrico o punto de acceso eliminará el mensaje de error que se presenta normalmente cada vez que se carga su página web. - Al tocar la pestaña activa se muestra el certificado SSL de la página web actual.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_tracking_ids_dark.html b/app/src/main/assets/es/guide_tracking_ids.html similarity index 78% rename from app/src/main/assets/es/guide_tracking_ids_dark.html rename to app/src/main/assets/es/guide_tracking_ids.html index e03279bc..23cd6569 100644 --- a/app/src/main/assets/es/guide_tracking_ids_dark.html +++ b/app/src/main/assets/es/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

No Rastrear

+

No Rastrear

Hace algunos años la W3C (Consorcio Mundial de la Red) creó un mecanismo para que los navegadores informaran a los servidores web que no les gustaría ser rastreados. Esto se logra incluyendo un encabezado DNT (Do Not Track o No Rastrear) con las solicitudes web.

@@ -35,7 +38,7 @@ todos ellos ignoran al menos algunos encabezados DNT.

-

Modificación de URL

+

Modificación de URL

Navegador Privado elimina las secciones de ID de seguimiento de las URL, como ?utm_ de Google Analytics y ?fbclick= de Facebook. La modificación de URL puede desactivarse en la configuración si está causando problemas.

diff --git a/app/src/main/assets/es/guide_tracking_ids_light.html b/app/src/main/assets/es/guide_tracking_ids_light.html deleted file mode 100644 index daa1cd7f..00000000 --- a/app/src/main/assets/es/guide_tracking_ids_light.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - -

No Rastrear

- -

Hace algunos años la W3C (Consorcio Mundial de la Red) creó un mecanismo para que los navegadores informaran a los servidores web que no les gustaría ser rastreados. - Esto se logra incluyendo un encabezado DNT (Do Not Track o No Rastrear) con las solicitudes web.

- -

El encabezado DNT no provee realmente de mucha privacidad porque la mayoría de servidores web lo ignoran. Por ejemplo, Yahoo, Google, Microsoft y Facebook, - todos ellos ignoran al menos algunos encabezados DNT.

- - -

Modificación de URL

- -

Navegador Privado elimina las secciones de ID de seguimiento de las URL, como ?utm_ de Google Analytics y - ?fbclick= de Facebook. La modificación de URL puede desactivarse en la configuración si está causando problemas.

- - \ No newline at end of file diff --git a/app/src/main/assets/es/guide_user_agent_dark.html b/app/src/main/assets/es/guide_user_agent.html similarity index 91% rename from app/src/main/assets/es/guide_user_agent_dark.html rename to app/src/main/assets/es/guide_user_agent.html index 82730a60..36295433 100644 --- a/app/src/main/assets/es/guide_user_agent_dark.html +++ b/app/src/main/assets/es/guide_user_agent.html @@ -22,11 +22,14 @@ - + + + + -

Identificación del navegador

+

Identificación del navegador

Cuando los navegadores web se conectan a las páginas web, envían un agente de usuario, que identifica al navegador y a las capacidades de rendering que posee. El servidor web puede usar esta información para decidir qué versión de página web enviar al navegador. @@ -40,7 +43,7 @@ La captura de pantalla de abajo muestra un Pixel 2 XL corriendo Android 10 con el sistema de android WebView 84.0.4147.125 instalado. La mayoría de servidores web reconocerán esto como un navegador móvil y mostrará la versión móvil del sitio si dispone de ella.

- +

Existe tanta información en el agente de usuario que algunas veces será el mismo con sólo unos pocos visitantes a una página web. Si el agente de usuario es combinado con otra pieza de información identificativa que no es única, esto da lugar a menudo a una huella única. @@ -49,7 +52,7 @@ Si esta prueba se realiza con javascript habilitado, la cantidad de información que es revelada aumenta grandemente. Browser Leaks (Fugas del navegador) y Am I Unique (¿Soy único?) son también buenas fuentes de información.

- +

Existen varios agentes de usuario preestablecidos que coinciden con los más comunes navegadores y sistemas operativos. A los efectos de huellas del navegador, todo lo que sea extraño es más fácil de rastrear. diff --git a/app/src/main/assets/es/guide_user_agent_light.html b/app/src/main/assets/es/guide_user_agent_light.html deleted file mode 100644 index a0e5b4db..00000000 --- a/app/src/main/assets/es/guide_user_agent_light.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - -

Identificación del navegador

- -

Cuando los navegadores web se conectan a las páginas web, envían un agente de usuario, que identifica al navegador y a las capacidades de rendering que posee. - El servidor web puede usar esta información para decidir qué versión de página web enviar al navegador. - Por ejemplo, muchas páginas web tienen diferentes versiones para escritorio y para navegadores móviles.

- -

Por defecto, Navegador Privado usa su propio agente de usuario, que es PrivacyBrowser/1.0. Éste envía un mínimo de información al servidor web. - Ya que los servidores web no lo reconocen como un agente de usuario móvil, lo que normalmente muestran es la versión de escritorio del sitio.

- -

En comparación, el agente de usuario por defecto de WebView divulga una gran cantidad de información sobre el hardware y el software del dispositivo. - En la ventana Configuración, seleccionando WebView por defecto como el Agente de usuario muestra el agente de usuario que se enviará. - La captura de pantalla de abajo muestra un Pixel 2 XL corriendo Android 10 con el sistema de android WebView 84.0.4147.125 instalado. - La mayoría de servidores web reconocerán esto como un navegador móvil y mostrará la versión móvil del sitio si dispone de ella.

- - - -

Existe tanta información en el agente de usuario que algunas veces será el mismo con sólo unos pocos visitantes a una página web. - Si el agente de usuario es combinado con otra pieza de información identificativa que no es única, esto da lugar a menudo a una huella única. - La Fundación de Frontera Electrónica (EFF) creó una herramienta llamada Panopticlick - para demostrar cuánta información puede ser recogida de estas fuentes. - Si esta prueba se realiza con javascript habilitado, la cantidad de información que es revelada aumenta grandemente. - Browser Leaks (Fugas del navegador) y Am I Unique (¿Soy único?) son también buenas fuentes de información.

- - - -

Existen varios agentes de usuario preestablecidos que coinciden con los más comunes navegadores y sistemas operativos. - A los efectos de huellas del navegador, todo lo que sea extraño es más fácil de rastrear. - Si Navegador Privado se vuelve común y mucha gente usa PrivacyBrowser/1.0 como su usuario de agente, será entonces una buena elección para su privacidad. - Firefox o Chrome son los usuarios de agente más comunes, pero se actualizan automáticamente y sus números de versión cambian tan rápidamente que es probable que los usuarios de agente incluídos - en Privacy Browser no estén ya en sintonía con la mayoría de agentes de usuario en los registros del servidor.

- -

Algunas páginas web no funcionan correctamente si no reconocen el agente de usuario. - Usando la configuración de dominios para establecer el agente de usuario a WebView por defecto, - o a otro agente de usuario que sea normalmente reconocido, suele resolver el problema. - El WebView de android no permite que el agente de usuario esté en blanco. Si lo está, WebView simplemente envía el agente de usuario por defecto al servidor.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/about_changelog_light.html b/app/src/main/assets/fr/about_changelog.html similarity index 99% rename from app/src/main/assets/fr/about_changelog_light.html rename to app/src/main/assets/fr/about_changelog.html index 06831df5..8f3448bf 100644 --- a/app/src/main/assets/fr/about_changelog_light.html +++ b/app/src/main/assets/fr/about_changelog.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/main/assets/fr/about_changelog_dark.html b/app/src/main/assets/fr/about_changelog_dark.html deleted file mode 100644 index 32c9f3fe..00000000 --- a/app/src/main/assets/fr/about_changelog_dark.html +++ /dev/null @@ -1,707 +0,0 @@ - - - - - - - - - - -

3.5.1 (version du code 51)

-

28 Août 2020 - API minimale : 19, API optimale : 29

-
    -
  • Correction d'un bug qui empêchait de nouveaux intents (liens en provenance d'autres applications) de se charger - si Privacy Browser avait été tué par le système d'exploitation en arrière-plan.
  • -
  • Correction d'un bug qui entraînait une initialisation incorrecte de l'application - si le thème de l'application était défini à l'opposé du thème du système d'exploitation.
  • -
- -

3.5 (version du code 50)

-

18 Août 2020 - API minimale : 19, API optimale : 29

- - -

3.4.1 (version du code 49)

-

1 Avril 2020 - API minimale : 19, API optimale : 29

- - -

3.4 (version du code 48)

-

28 Mars 2020 - API minimale : 19, API optimale : 29

- - -

3.3 (version du code 47)

-

3 Janvier 2020 - API minimale : 19, API optimale : 29

- - -

3.2 (version du code 46)

-

20 Juillet 2019 - API minimale : 19, API optimale : 28

- - -

3.1 (version du code 45)

-

27 Mai 2019 - API minimale : 19, API optimale : 28

- - -

3.0.1 (version du code 44)

-

2 Mai 2019 - API minimale : 19, API optimale : 28

- - -

3.0 (version du code 43)

-

26 Avril 2019 - API minimale : 19, API optimale : 28

-
    -
  • Ajout de la nvaigation par onglet.
  • -
  • Correction d'un bug qui coupait le bas de la WebView lorsque le défilement de la barre d'applications était désactivé.
  • -
  • Correction d'un bug qui faisait redémarrer le Privacy Browser à chaque fois qu'un clavier Bluetooth était connecté / déconnecté.
  • -
  • Traduction allemande mise à jour fournie par Bernhard G. Keller.
  • -
  • Traduction italienne mise à jour fournie par Francesco Buratti.
  • -
  • Traduction russe mise à jour.
  • -
  • Traduction espagnole mise à jour fournie par Jose A. León.
  • -
  • Traduction partielle en Turc.
  • -
- -

2.17.1 (version du code 42)

-

5 Mars 2019 - API minimale : 19, API optimale : 28

- - -

2.17 (version du code 41)

-

27 Février 2019 - API minimale : 19, API optimale : 28

- - -

2.16 (version du code 40)

-

31 Janvier 2019 - API minimale : 19, API optimale : 28

- - -

2.15.1 (version du code 39)

-

27 Décembre 2018 - API minimale : 19, API optimale : 28

- - -

2.15 (version du code 38)

-

24 Décembre 2018 - API minimale : 19, API optimale : 28

- - -

2.14 (version du code 37)

-

8 Décembre 2018 - API minimale : 19, API optimale : 28

- - -

2.13 (version du code 36)

-

29 Octobre 2018 - API minimale : 19, API optimale : 28

- - -

2.12 (version du code 35)

-

31 Juillet 2018 - API minimale : 19, API optimale : 27

- - -

2.11 (version du code 34)

-

10 Juillet 2018 - API minimale : 19, API optimale : 27

- - -

2.10 (version du code 33)

-

24 Mai 2018 - API minimale : 19, API optimale : 27

- - -

2.9 (version du code 32)

-

9 Mai 2018 - API minimale : 19, API optimale : 27

- - -

2.8.1 (version du code 31)

-

1 Mars 2018 - API minimale : 19, API optimale : 27

- - -

2.8 (version du code 30)

-

22 Février 2018 - API minimale : 19, API optimale : 27

- - -

2.7.2 (version du code 29)

-

22 Novembre 2017 - API minimale : 19, API optimale : 26

- - -

2.7.1 (version du code 28)

-

9 Novembre 2017 - API minimale : 19, API optimale : 26

- - -

2.7 (version du code 27)

-

7 Novembre 2017 - API minimale : 19, API optimale : 26

-
    -
  • Ajout d'un panneau favoris accessible en glissant l'écran vers la gauche.
  • -
  • Empêcher le mode nuit d'afficher un fond blanc lors du chargement de nouvelles pages.
  • -
  • MAJ des user agents.
  • -
  • MAJ API optimale : vers 26 (Android Oreo, 8.0.0).
  • -
  • Traduction italienne mise à jour fournie par Francesco Buratti.
  • -
  • Traduction espagnole mise à jour fournie par Jose A. León.
  • -
- -

2.6 (version du code 26)

-

18 Septembre 2017 - API minimale : 19, API optimale : 25

- - -

2.5 (version du code 25)

-

26 Août 2017 - API minimale : 19, API optimale : 25

- - -

2.4 (version du code 24)

-

23 Juin 2017 - API minimale : 19, API optimale : 25

- - -

2.3 (version du code 23)

-

26 Mai 2017 - API minimale : 19, API optimale : 25

- - -

2.2 (version du code 22)

-

27 Avril 2017 - API minimale : 19, API optimale : 25

- - -

2.1 (version du code 21)

-

25 Mars 2017 - API minimale : 19, API optimale : 25

- - -

2.0.1 (version du code 20)

-

21 Mars 2017 - API minimale : 19, API optimale : 25

- - -

2.0 (version du code 19)

-

16 Mars 2017 - API minimale : 19, API optimale : 25

- - -

1.15 (version du code 18)

-

11 Février 2017 - API minimale : 19, API optimale : 25

- - -

1.14.1 (version du code 17)

-

4 Janvier 2017 - API minimale : 19, API optimale : 25

-
    -
  • Correction d'un bug qui faisait planter Privacy Browser sur certains sites web lorsque le blocage publicitaire était activé.
  • -
- -

1.14 (version du code 16)

-

26 Décembre 2016 - API minimale : 19, API optimale : 25

- - -

1.13 (version du code 15)

-

28 Novembre 2016 - API minimale : 19, API optimale : 24

- - -

1.12 (version du code 14)

-

9 Novembre 2016 - API minimale : 19, API optimale : 24

- - -

1.11 (version du code 13)

-

22 Octobre 2016 - API minimale : 19, API optimale : 24

- - -

1.10 (version du code 12)

-

15 Septembre 2016 - API minimale : 19, API optimale : 23

-
    -
  • Ajout du support de Tor Orbot proxy.
  • -
  • Ajout du support de Do Not Track.
  • -
  • Ajout une boîte de dialogue qui permet à l'utilisateur de - modifier le nom d'un fichier afin que son téléchargement ne débute.
  • -
  • Ajout de boutons d'actions optionnels les cookies, le stockage du DOM, et les formulaire de données.
  • -
  • MAJ user agents et ajout de Safari sur iOS et OS X.
  • -
  • Ajout StartPage et Qwant à la liste des moteurs de recherche.
  • -
  • Traduction allemande mise à jour fournie par Aaron Gerlach.
  • -
- -

1.9.1 (version du code 11)

-

27 Août 2016 - API minimale : 19, API optimale : 23

-
    -
  • Changement des liens des images par des liens relatifs afin que Privacy Browser soit construit sous F-Droid.
  • -
- -

1.9 (version du code 10)

-

26 Août 2016 - API minimale : 19, API optimale : 23

- - -

1.8 (version du code 9)

-

16 Juillet 2016 - API minimale : 19, API optimale : 23

- - -

1.7 (version du code 8)

-

16 Juin 2016 - API minimale : 19, API optimale : 23

- - -

1.6 (version du code 7)

-

11 Mai 2016 - API minimale : 15, API optimale : 23

- - -

1.5 (version du code 6)

-

5 Mai 2016 - API minimale : 15, API optimale : 23

-
    -
  • Ajout de l'option pour désactiver "glisser pour rafraîchir" afin que certains sites web, comme Google Maps, puissent fonctionner correctement.
  • -
- -

1.4 (version du code 5)

-

28 Avril 2016 - API minimale : 15, API optimale : 23

- - -

1.3 (version du code 4)

-

7 Avril 2016 - API minimale : 15, API optimale : 23

- - -

1.2 (version du code 3)

-

23 Mars 2016 - API minimale : 15, API optimale : 23

- - -

1.1 (version du code 2)

-

9 Mars 2016 - API minimale : 10, API optimale : 23

-
    -
  • Séparation de la version gratuite et de la version standard pour que Privacy Browser se construise correctement dans F-Droid.
  • -
- -

1.0 (version du code 1)

-

24 Février 2016 - API minimale : 10, API optimale : 23

-
    -
  • Activer/Désactiver JavaScript, stockage du DOM, et les cookies.
  • -
  • Paramétrage du comportement par défaut pour JavaScript, le stockage du DOM, et les cookies.
  • -
  • Suppression du stockage du DOM et des cookies.
  • -
  • Ajout des raccourcis à la page d'accueil.
  • -
  • Utilisation du gestionnaire de téléchargement.
  • -
  • Navigation suivant et précédent.
  • -
  • Couper, coller, copier des URLs.
  • -
  • Partager des URLs.
  • -
  • Paramétrage page d'accueil.
  • -
  • Navigation dans la barre d'URL.
  • -
  • Maintain WebView scroll location when rotating écran.
  • -
  • Glisser pour actualiser WebView.
  • -
  • Lecture des vidéos en plein écran (nécessite l'activation de JavaScript).
  • -
  • Bouton Nettoyer et Quitter.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/fr/about_contributors_dark.html b/app/src/main/assets/fr/about_contributors.html similarity index 89% rename from app/src/main/assets/fr/about_contributors_dark.html rename to app/src/main/assets/fr/about_contributors.html index 01ee44a3..7c77b517 100644 --- a/app/src/main/assets/fr/about_contributors_dark.html +++ b/app/src/main/assets/fr/about_contributors.html @@ -22,7 +22,10 @@ - + + + + @@ -48,4 +51,4 @@

Les contributeurs sont invités à soumettre leurs codes et leurs traductions.

- + \ No newline at end of file diff --git a/app/src/main/assets/fr/about_contributors_light.html b/app/src/main/assets/fr/about_contributors_light.html deleted file mode 100644 index 22503bc2..00000000 --- a/app/src/main/assets/fr/about_contributors_light.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - -

Développeur principal

-

Privacy Browser est principalement développé par Soren Stoutner.

- -

Codeurs

- Thomas Jensen
- Hendrik Knackstedt - -

Traducteurs

- Kévin LE FLOHIC : Français
- Thiago Nazareno Conceição Silva de Jesus: Portugais brésilien
- Bernhard G. Keller : Allemand
- Francesco Buratti : Italien
- Jose A. León : Espagnol - -

Anciens traducteurs

- Stefan Erhardt: Allemand
- Aaron Gerlach : Allemand - -
-
-

Les contributeurs sont invités à soumettre leurs codes et leurs traductions.

- - diff --git a/app/src/main/assets/fr/about_licenses_dark.html b/app/src/main/assets/fr/about_licenses.html similarity index 89% rename from app/src/main/assets/fr/about_licenses_dark.html rename to app/src/main/assets/fr/about_licenses.html index 1a5e86f1..7549c265 100644 --- a/app/src/main/assets/fr/about_licenses_dark.html +++ b/app/src/main/assets/fr/about_licenses.html @@ -22,7 +22,10 @@ - + + + + @@ -61,38 +64,38 @@ Le fichier modifié est publié sous la licence GPLv3+.

Icônes

-

- sont dérivés de security et de language, +

+ sont dérivés de security et de language, qui font partie de l'ensemble d'icônes Matériel Android et sont publiés sous la Licence Apache 2.0. Le texte complet de la licence est ci-dessous. Modifications copyright © 2016 Soren Stoutner. Les images résultantes sont publiées sous la licence GPLv3+.

-

est dérivé des éléments folder et exit_to_app, +

est dérivé des éléments folder et exit_to_app, qui font partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2017 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

est dérivé des éléments bookmark et create_new_folder, qui font partie de +

est dérivé des éléments bookmark et create_new_folder, qui font partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2017 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément create_new_folder, +

est dérivée de l'élément create_new_folder, qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2017 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément exit_to_app, qui fait partie de +

est dérivée de l'élément exit_to_app, qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2017 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément compare, +

est dérivée de l'élément compare, qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2017 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément sort, +

est dérivée de l'élément sort, qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. Modifications copyright © 2019 Soren Stoutner. L'image résultante est publiée sous la licence GPLv3+.

-

cookie a été créé par Google. +

cookie a été créé par Google. Il est publié sous la Licence Apache 2.0 et peut être téléchargé à partir des Icônes Material Design. Il est inchangé sauf pour les informations de mise en page telles que la couleur et la taille.

@@ -100,64 +103,64 @@ qui est publié sous la Licence Apache 2.0. Ils sont inchangés sauf pour les informations de mise en page comme la couleur et la taille. Certains d'entre eux ont été renommés pour correspondre à leur utilisation dans le code. Les icônes et les noms d'origine sont indiqués ci-dessous.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/fr/about_licenses_light.html b/app/src/main/assets/fr/about_licenses_light.html deleted file mode 100644 index 84b7d9d5..00000000 --- a/app/src/main/assets/fr/about_licenses_light.html +++ /dev/null @@ -1,1071 +0,0 @@ - - - - - - - - - - -

Copyright

-

Privacy Browser copyright © 2015-2020 Soren Stoutner.

- -

Licence

-

rivacy Browser est publié sous la licence GPLv3+. Le texte complet de la licence est ci-dessous. - Le code source est disponible à partir de git.stoutner.com.

- -

Listes de blocage

-

EasyList et EasyPrivacy - sont licences doubles GPLv3+ - et Creative Commons Attribution-ShareAlike 3.0+ Unported. - Privacy Browser les intègre à l'aide de l'option GPLv3+.

- -

Fanboy’s Annoyance List et Fanboy’s Social Blocking List - sont publiés sous la licence Creative Commons Attribution 3.0 Unported license, - qui est compatible avec la GPLv3+. Les listes ne sont pas modifiées dans Privacy Browser.

- -

Pour plus d'informations sur les listes de blocage, consultez le site web EasyList.

- -

Librairies

-

Privacy Browser est construit avec les librairies AndroidX, - les librairies Kotlin, - et le code du référentiel Google Material Maven, - publiés sous la Licence Apache 2.0.

- -

La version gratuite de Privacy Browser repose sur les Annonces Firebase, - publié sous la licence du kit de développement logiciel Android.

- -

Classes

-

com.stoutner.privacybrowser.views.CheckedLinearLayout est une version modifiée d'une classe contenue dans le code source de la - Caméra Android. - Le fichier d'origine a été publié sous la Licence Apache 2.0. - Le fichier modifié est publié sous la licence GPLv3+.

- -

Icônes

-

- sont dérivés de security et de language, - qui font partie de l'ensemble d'icônes Matériel Android - et sont publiés sous la Licence Apache 2.0. - Le texte complet de la licence est ci-dessous. Modifications copyright © 2016 Soren Stoutner. - Les images résultantes sont publiées sous la licence GPLv3+.

-

est dérivé des éléments folder et exit_to_app, - qui font partie de l'ensemble d'icônes Matériel Android - et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2017 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

est dérivé des éléments bookmark et create_new_folder, qui font partie de - l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2017 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément create_new_folder, - qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2017 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément exit_to_app, qui fait partie de - l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2017 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément compare, - qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2017 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

est dérivée de l'élément sort, - qui fait partie de l'ensemble d'icônes Matériel Android et sont publiés sous Licence Apache 2.0. - Modifications copyright © 2019 Soren Stoutner. - L'image résultante est publiée sous la licence GPLv3+.

-

cookie a été créé par Google. - Il est publié sous la Licence Apache 2.0 - et peut être téléchargé à partir des Icônes Material Design. - Il est inchangé sauf pour les informations de mise en page telles que la couleur et la taille.

-

Les icônes suivantes proviennent de l'ensemble d'icônes Matériel Android, - qui est publié sous la Licence Apache 2.0. - Ils sont inchangés sauf pour les informations de mise en page comme la couleur et la taille. Certains d'entre eux ont été renommés pour correspondre à leur utilisation dans le code. - Les icônes et les noms d'origine sont indiqués ci-dessous.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others’ Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/fr/about_links_light.html b/app/src/main/assets/fr/about_links.html similarity index 70% rename from app/src/main/assets/fr/about_links_light.html rename to app/src/main/assets/fr/about_links.html index 889edd15..36badec8 100644 --- a/app/src/main/assets/fr/about_links_light.html +++ b/app/src/main/assets/fr/about_links.html @@ -1,5 +1,5 @@ +

Sites Webs

-

+

Actualités

-

+

Roadmap

-

+

Suivi de bogues et demandes de fonctionnalités

-

+

Forum

-

+

GitWeb

- + \ No newline at end of file diff --git a/app/src/main/assets/fr/about_links_dark.html b/app/src/main/assets/fr/about_links_dark.html deleted file mode 100644 index 1726ea10..00000000 --- a/app/src/main/assets/fr/about_links_dark.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

Sites Webs

- -

- Actualités

- -

- Roadmap

- -

- Suivi de bogues et demandes de fonctionnalités

- -

- Forum

- -

- GitWeb

- - diff --git a/app/src/main/assets/fr/about_permissions_dark.html b/app/src/main/assets/fr/about_permissions.html similarity index 90% rename from app/src/main/assets/fr/about_permissions_dark.html rename to app/src/main/assets/fr/about_permissions.html index 8a6959c9..2d69ec2f 100644 --- a/app/src/main/assets/fr/about_permissions_dark.html +++ b/app/src/main/assets/fr/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/fr/about_permissions_light.html b/app/src/main/assets/fr/about_permissions_light.html deleted file mode 100644 index 8e8959c5..00000000 --- a/app/src/main/assets/fr/about_permissions_light.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - -

Disposer d'un accès réseau complet

-

android.permission.INTERNET

-

Requis pour que WebView puisse accéder à Internet. Sans cette autorisation, Privacy Browser serait «No Browser: protégez votre vie privée en restant complètement hors d'Internet».

- -

Installer les raccourcis

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Requis pour ajouter des raccourcis pour les sites Web au bureau du programme de lancement.

- -

Lire le stockage

-

android.permission.READ_EXTERNAL_STORAGE

-

Requis pour importer les paramètres des dossiers publics. Sous Android Marshmallow (API 23) et plus récente, si cette autorisation est refusée, - Privacy Browser peut importer les paramètres à partir des dossiers de l'application.

- -

Mémoire d'écriture

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Requis pour exporter les paramètres et télécharger les fichiers dans les dossiers publics. - Sous Android Marshmallow (API 23) et plus récente, si cette autorisation est refusée, - Privacy Browser peut exporter les paramètres et stocker les téléchargements dans les dossiers de l'application.

- - diff --git a/app/src/main/assets/fr/about_privacy_policy_light.html b/app/src/main/assets/fr/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/fr/about_privacy_policy_light.html rename to app/src/main/assets/fr/about_privacy_policy.html index 817af742..709adc0b 100644 --- a/app/src/main/assets/fr/about_privacy_policy_light.html +++ b/app/src/main/assets/fr/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -87,6 +90,6 @@ Stoutner ne vendra jamais ces informations ni ne les transférera à des tiers qui les utiliseraient à des fins publicitaires ou marketing.


-

Revision 1.6, 22 Mai 2018

+

Revision 1.7, 14 Mai 2019

\ No newline at end of file diff --git a/app/src/main/assets/fr/about_privacy_policy_dark.html b/app/src/main/assets/fr/about_privacy_policy_dark.html deleted file mode 100644 index 11365b6c..00000000 --- a/app/src/main/assets/fr/about_privacy_policy_dark.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser ne collecte aucune information sur l'utilisateur.

- - -

Google Play

-

Google Play a sa propre règle de confidentialité . - Google fournit aux développeurs des informations d'installation récapitulatives et anonymisées, notamment le nombre d'installations organisées selon les catégories suivantes.

-
    -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablettes (ex. Tablettes 10" et plus)
  • -
  • Pays (ex. France)
  • -
  • Langage (ex. Français [Canada])
  • -
  • Version d'Application (ex. 14)
  • -
  • Opérateur (eg. Orange - FR)
  • -
- - -

Notes Google Play

-

Google Play a sa propre règle de confidentialité . - Google fournit aux développeurs des résumés anonymisés des informations suivantes relatives aux évaluations des utilisateurs.

-
    -
  • Pays (ex. France)
  • -
  • Langage (ex. Français [Canada])
  • -
  • Version d'Application (ex. 14)
  • -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablettes (ex. Tablettes 10" et plus)
  • -
- - -

Avis Google Play

-

Google Play a sa propre règle de confidentialité. - Outre le nom du réviseur, l'évaluation et le texte de la révision (tous disponibles publiquement), Google fournit au développeur tout ou partie des informations suivantes.

-
    -
  • Code de Version (ex. 7)
  • -
  • Nom de Version (ex. 1.6)
  • -
  • Version d'Android (ex. Android 7.1)
  • -
  • Terminal (ex. Samsung Galaxy S6 [zeroflte])
  • -
  • Constructeur (ex. Samsung)
  • -
  • Type de terminal (ex. Phone)
  • -
  • La marque du processeur (ex. Samsung)
  • -
  • Le modèle de processeur (ex. Exynos 7420)
  • -
  • Densité d'affichage (ex. 560 dpi)
  • -
  • Taille d'écran (ex. 2560 x 1440)
  • -
  • RAM (ex. 4096 MB)
  • -
  • Plateforme native (ex. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Version OpenGL ES (ex. 3.1)
  • -
  • Langage du terminal (ex. English)
  • -
- - -

Communications directes

-

Les utilisateurs peuvent choisir d'envoyer des communications directes à Stoutner, telles que des courriels et des commentaires sur stoutner.com.

- - -

Utilisation de l'information

-

Stoutner peut utiliser ces informations pour contribuer au développement de Privacy Browser et communiquer le statut du projet aux utilisateurs. - Stoutner ne vendra jamais ces informations ni ne les transférera à des tiers qui les utiliseraient à des fins publicitaires ou marketing.

- -
-

Revision 1.6, 22 Mai 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_domain_settings_light.html b/app/src/main/assets/fr/guide_domain_settings.html similarity index 66% rename from app/src/main/assets/fr/guide_domain_settings_light.html rename to app/src/main/assets/fr/guide_domain_settings.html index d0541dc0..8aab1b51 100644 --- a/app/src/main/assets/fr/guide_domain_settings_light.html +++ b/app/src/main/assets/fr/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Navigation Web sécurisée

+

Navigation Web sécurisée

Par défaut, Privacy Browser permet de naviguer avec JavaScript, les cookies et le stockage DOM désactivé. Cependant, certains sites Web ont légitimement besoin que ces fonctionnalités soient activées pour fonctionner correctement. Les paramètres de domaine peuvent activer automatiquement un ensemble de fonctionnalités spécifié lors de la visite d'un domaine désigné.

-

+ -

Lors de la visite d'un domaine pour lequel des paramètres de domaine sont spécifiés, l'arrière-plan de la zone de texte de l'URL est vert.

+

Lors de la visite d'un domaine pour lequel des paramètres de domaine sont spécifiés, l'arrière-plan de la zone de texte de l'URL est vert.

-

+ diff --git a/app/src/main/assets/fr/guide_domain_settings_dark.html b/app/src/main/assets/fr/guide_domain_settings_dark.html deleted file mode 100644 index 349187ee..00000000 --- a/app/src/main/assets/fr/guide_domain_settings_dark.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Navigation Web sécurisée

- -

Par défaut, Privacy Browser permet de naviguer avec JavaScript, les cookies et le stockage DOM désactivé. - Cependant, certains sites Web ont légitimement besoin que ces fonctionnalités soient activées pour fonctionner correctement. - Les paramètres de domaine peuvent activer automatiquement un ensemble de fonctionnalités spécifié lors de la visite d'un domaine désigné.

- -

- -

Lors de la visite d'un domaine pour lequel des paramètres de domaine sont spécifiés, l'arrière-plan de la zone de texte de l'URL est vert.

- -

- - diff --git a/app/src/main/assets/fr/guide_javascript_dark.html b/app/src/main/assets/fr/guide_javascript.html similarity index 87% rename from app/src/main/assets/fr/guide_javascript_dark.html rename to app/src/main/assets/fr/guide_javascript.html index 2b5b0399..593f7ca5 100644 --- a/app/src/main/assets/fr/guide_javascript_dark.html +++ b/app/src/main/assets/fr/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript Est Puissant

+

JavaScript Est Puissant

Au début de l'internet, les pages Web étaient statiques, c'est-à-dire qu'elles contenaient du texte et des images qui étaient affichées à l'écran mais qui ne changeaient pas et n'interagissaient pas avec l'utilisateur. @@ -36,22 +39,22 @@

JavaScript est un langage de programmation. De nombreux serveurs Web hébergent des programmes écrits en JavaScript, qui sont envoyés aux périphériques dans le cadre de la page Web. L'appareil exécute le code JavaScript sur son processeur local et suit les commandes du programme, qui peut animer des images sur le site Web, afficher un menu et bien d'autres choses utiles.

-

JavaScript Est Dangereux

+

JavaScript Est Dangereux

Bien entendu, le concept d'exécution de programmes arbitraires à partir d'un site Web est potentiellement dangereux. Par conséquent, JavaScript est limité pour l'empêcher d'effectuer des opérations telles que l'installation de virus. Cependant, il s'avère que ces limitations sont trop larges. Vous trouverez ci-dessous une capture d'écran de Webkay, un site Web présentant le type d'informations que JavaScript peut générer à propos d'un appareil. Les fuites du navigateur sont une autre bonne ressource.

-

+

Pour des raisons de confidentialité, l'idéal serait de naviguer sur Internet avec JavaScript désactivé. Cependant, certains sites Web nécessitent légitimement l'utilisation de JavaScript pour atteindre leurs objectifs. Et d'autres qui ne fonctionnent pas correctement sans JavaScript même s'ils peuvent être programmés pour le faire. Privacy Browser résout ce problème en facilitant l'activation et la désactivation de JavaScript. - Tapez sur le bouclier de confidentialité pour le basculer entre le bleu - ou le jaune - (les deux indiquent que JavaScript est désactivé) et red (activé par JavaScript). + Tapez sur le bouclier de confidentialité pour le basculer entre le bleu + ou le jaune + (les deux indiquent que JavaScript est désactivé) et red (activé par JavaScript). Voir les différentes informations que Webkay peut collecter avec JavaScript activé et désactivé est informatif.

Naviguer sur Internet avec JavaScript désactivé, et ne l'activer que si nécessaire, contribue grandement à la protection de la vie privée. diff --git a/app/src/main/assets/fr/guide_javascript_light.html b/app/src/main/assets/fr/guide_javascript_light.html deleted file mode 100644 index 9dae76f7..00000000 --- a/app/src/main/assets/fr/guide_javascript_light.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - -

JavaScript Est Puissant

- -

Au début de l'internet, les pages Web étaient statiques, - c'est-à-dire qu'elles contenaient du texte et des images qui étaient affichées à l'écran mais qui ne changeaient pas et n'interagissaient pas avec l'utilisateur. - Bien entendu, seul un contenu intéressant peut arriver avec du contenu statique. Plusieurs technologies différentes ont été développées pour faciliter les pages Web dynamiques. - JavaScript est l'une de ces technologies.

- -

JavaScript est un langage de programmation. De nombreux serveurs Web hébergent des programmes écrits en JavaScript, qui sont envoyés aux périphériques dans le cadre de la page Web. - L'appareil exécute le code JavaScript sur son processeur local et suit les commandes du programme, qui peut animer des images sur le site Web, afficher un menu et bien d'autres choses utiles.

- -

JavaScript Est Dangereux

- -

Bien entendu, le concept d'exécution de programmes arbitraires à partir d'un site Web est potentiellement dangereux. - Par conséquent, JavaScript est limité pour l'empêcher d'effectuer des opérations telles que l'installation de virus. Cependant, il s'avère que ces limitations sont trop larges. - Vous trouverez ci-dessous une capture d'écran de Webkay, un site Web présentant le type d'informations que JavaScript peut générer à propos d'un appareil. - Les fuites du navigateur sont une autre bonne ressource.

- -

- -

Pour des raisons de confidentialité, l'idéal serait de naviguer sur Internet avec JavaScript désactivé. - Cependant, certains sites Web nécessitent légitimement l'utilisation de JavaScript pour atteindre leurs objectifs. - Et d'autres qui ne fonctionnent pas correctement sans JavaScript même s'ils peuvent être programmés pour le faire. - Privacy Browser résout ce problème en facilitant l'activation et la désactivation de JavaScript. - Tapez sur le bouclier de confidentialité pour le basculer entre le bleu - ou le jaune - (les deux indiquent que JavaScript est désactivé) et red (activé par JavaScript). - Voir les différentes informations que Webkay peut collecter avec JavaScript activé et désactivé est informatif.

- -

Naviguer sur Internet avec JavaScript désactivé, et ne l'activer que si nécessaire, contribue grandement à la protection de la vie privée. - En outre, JavaScript est utilisé pour charger une grande partie des publicités gênantes et des informations supplémentaires fournies par la plupart des sites Web modernes. - Lorsque cette fonctionnalité est désactivée, les sites Web se chargent plus rapidement, utilisent moins de trafic réseau et consomment moins de puissance du processeur, - ce qui allonge la durée de vie de la batterie.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_local_storage_dark.html b/app/src/main/assets/fr/guide_local_storage.html similarity index 90% rename from app/src/main/assets/fr/guide_local_storage_dark.html rename to app/src/main/assets/fr/guide_local_storage.html index eb776b97..0314bb12 100644 --- a/app/src/main/assets/fr/guide_local_storage_dark.html +++ b/app/src/main/assets/fr/guide_local_storage.html @@ -1,5 +1,5 @@ + -

Cookies internes

+

Cookies internes

Les cookies propriétaires sont définis par le site Web dans la barre d'adresse en haut de la page.

@@ -44,10 +47,10 @@ C'est ainsi qu'ils s'assurent que c'est toujours votre cas lorsque vous vous déplacez de page en page sur le site. C'est, à mon avis, l'une des rares utilisations légitimes des cookies.

Si les cookies propriétaires sont activés mais que JavaScript est désactivé, - l'icône de confidentialité sera jaune en guise d'avertissement.

+ l'icône de confidentialité sera jaune en guise d'avertissement.

-

Cookies de tiers

+

Cookies de tiers

Les cookies tiers sont définis par des parties d'un site Web chargées à partir de serveurs différents de l'URL en haut de la page. Par exemple, la plupart des sites Web contenant des publicités les chargent depuis un courtier publicitaire tiers, comme Ad Sense de Google. @@ -76,7 +79,7 @@ entre les cookies propriétaires et tiers . Ainsi, l'activation des cookies propriétaires permettra également l'utilisation de cookies tiers.

-

Stockage du DOM

+

Stockage du DOM

Le stockage de modèle d'objet de document, également appelé stockage Web, ressemble à des cookies sur des stéroïdes. Considérant que la taille de stockage combinée maximale pour tous les cookies d'une seule URL est de 4 kilo-octets, @@ -84,7 +87,7 @@ Le stockage DOM utilisant JavaScript pour lire et écrire des données, il ne peut être activé que si JavaScript est également activé.

-

Données de formulaire

+

Données de formulaire

Les données de formulaire contiennent des informations saisies dans des formulaires Web, telles que des noms d'utilisateur, des adresses, des numéros de téléphone, etc., et les répertorient dans une liste déroulante lors de visites ultérieures. diff --git a/app/src/main/assets/fr/guide_local_storage_light.html b/app/src/main/assets/fr/guide_local_storage_light.html deleted file mode 100644 index 08f98b62..00000000 --- a/app/src/main/assets/fr/guide_local_storage_light.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - -

Cookies internes

- -

Les cookies propriétaires sont définis par le site Web dans la barre d'adresse en haut de la page.

- -

Dès les débuts d'Internet, il est devenu évident qu'il serait avantageux pour les sites Web de pouvoir stocker des informations sur un ordinateur pour un accès ultérieur. - Par exemple, un site Web affichant des informations météorologiques peut demander à l'utilisateur un code postal, puis le stocker dans un cookie. - Lors de la prochaine visite de l'utilisateur sur le site Web, les informations météo se chargeraient automatiquement pour ce code postal, sans que l'utilisateur ait à le saisir à nouveau.

- -

Comme pour tout le reste du Web, - des personnes intelligentes ont découvert toutes sortes de moyens d'abuser des cookies pour faire des choses que les utilisateurs n'approuveraient pas s'ils savaient qu'ils se produisaient. - Par exemple, un site Web peut définir un cookie avec un numéro de série unique sur un appareil. - Ensuite, chaque fois qu'un utilisateur visite le site Web sur cet appareil, il peut être lié à un profil unique que le serveur conserve pour ce numéro de série. - même si le périphérique se connecte à partir d'adresses IP différentes.

- -

Presque tous les sites Web avec des connexions exigent que les cookies propriétaires soient activés pour qu'un utilisateur puisse se connecter. - C'est ainsi qu'ils s'assurent que c'est toujours votre cas lorsque vous vous déplacez de page en page sur le site. C'est, à mon avis, l'une des rares utilisations légitimes des cookies.

- -

Si les cookies propriétaires sont activés mais que JavaScript est désactivé, - l'icône de confidentialité sera jaune en guise d'avertissement.

- - -

Cookies de tiers

- -

Les cookies tiers sont définis par des parties d'un site Web chargées à partir de serveurs différents de l'URL en haut de la page. - Par exemple, la plupart des sites Web contenant des publicités les chargent depuis un courtier publicitaire tiers, comme Ad Sense de Google. - Chaque fois que le site Web se charge, il demande au courtier en publicité d'afficher une annonce. - Le courtier en publicité analyse toutes les informations dont il dispose sur l'utilisateur, - examine le tarif actuel que les annonceurs sont disposés à payer pour leurs annonces et sélectionne celle à afficher. - La section du site Web qui affiche les annonces est chargée à partir du serveur du courtier tiers au lieu du serveur principal.

- -

La plupart des publicités sur Internet étant traitées par quelques courtiers uniquement, - ils ont vite compris qu'ils pouvaient définir un cookie de suivi sur le terminal de l'utilisateur et connaître chaque lieu où cet utilisateur se rend. - Chaque fois qu'une annonce est chargée à partir d'un courtier, elle vérifie d'abord si le périphérique a déjà un numéro de série unique dans un cookie de suivi. - Si tel est le cas, il recherche le profil pour ce numéro de série et note le nouveau site. - C'est pourquoi un utilisateur peut rechercher sur un site Web un produit qu'il ne recherche généralement pas, comme les noix, - et puis soudain commencer à voir des publicités pour les noix sur chaque site Web qu'ils visitent.

- -

Outre les courtiers en publicité, les sites de médias sociaux ont découvert qu'ils pouvaient jouer un rôle actif. - Il y a quelques années, les principaux sites de médias sociaux tels que Facebook et Twitter ont convaincu un grand nombre de sites Web. - qu'il serait dans leur intérêt de placer de petites icônes de médias sociaux sur leurs pages. - Ce ne sont pas que des images. Ils contiennent le code incorporé qui renvoie au site de média social et, entre autres, - charge un cookie tiers sur l'appareil. Ces cookies sont placés même si l'utilisateur n'a pas de compte avec la plate-forme de médias sociaux. - Au fil du temps, des entreprises comme Facebook (qui gère également une régie publicitaire) ont constitué un assez grand nombre de profils détaillés sur les personnes qui ont - n'a même jamais créé de compte sur son site .

- -

Il n'existe aucune raison valable d'autoriser les cookies tiers. Sur les appareils avec Android KitKat ou une version antérieure (version <= 4.4.4 ou API <= 20), WebView ne - différencie pas - entre les cookies propriétaires et tiers . Ainsi, l'activation des cookies propriétaires permettra également l'utilisation de cookies tiers.

- - -

Stockage du DOM

- -

Le stockage de modèle d'objet de document, également appelé stockage Web, ressemble à des cookies sur des stéroïdes. - Considérant que la taille de stockage combinée maximale pour tous les cookies d'une seule URL est de 4 kilo-octets, - Le stockage DOM peut contenir des mégaoctets par site. - Le stockage DOM utilisant JavaScript pour lire et écrire des données, il ne peut être activé que si JavaScript est également activé.

- - -

Données de formulaire

- -

Les données de formulaire contiennent des informations saisies dans des formulaires Web, telles que des noms d'utilisateur, des adresses, des numéros de téléphone, - etc., et les répertorient dans une liste déroulante lors de visites ultérieures. - Contrairement aux autres formes de stockage local, les données de formulaire ne sont pas envoyées au serveur Web sans interaction spécifique de l'utilisateur. - Depuis Android Oreo (8.0), les données de formulaire de WebView ont été remplacées par le - service de saisie automatique.. - En tant que tels, les contrôles des données de formulaire n'apparaissent plus sur les nouveaux appareils Android.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_overview_dark.html b/app/src/main/assets/fr/guide_overview.html similarity index 83% rename from app/src/main/assets/fr/guide_overview_dark.html rename to app/src/main/assets/fr/guide_overview.html index 3404ed4f..2ecf77fe 100644 --- a/app/src/main/assets/fr/guide_overview_dark.html +++ b/app/src/main/assets/fr/guide_overview.html @@ -1,5 +1,5 @@ + -

Réelle confidentialité

+

Réelle confidentialité

Privacy Browser est conçu pour vous permettre de contrôler autant que possible votre vie privée tout en naviguant sur Internet. Lorsqu'un navigateur se connecte à un site Web, certaines informations nécessaires pour faciliter la connexion sont transférées au serveur. @@ -40,7 +43,7 @@ Privacy Browser est conçu pour fournir à l'utilisateur autant d'informations et de contrôle que possible sur ces techniques de suivi.

-

Limites d'Android WebView

+

Limites d'Android WebView

Privacy Browser utilise WebView intégré à Android pour afficher les sites Web. Il existe certaines limitations dans les contrôles que WebView applique pour gérer les paramètres de confidentialité. Par exemple, il n'est pas possible d'activer certaines commandes JavaScript tout en en désactivant d'autres. diff --git a/app/src/main/assets/fr/guide_overview_light.html b/app/src/main/assets/fr/guide_overview_light.html deleted file mode 100644 index 3fb94b13..00000000 --- a/app/src/main/assets/fr/guide_overview_light.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - -

Réelle confidentialité

- -

Privacy Browser est conçu pour vous permettre de contrôler autant que possible votre vie privée tout en naviguant sur Internet. - Lorsqu'un navigateur se connecte à un site Web, certaines informations nécessaires pour faciliter la connexion sont transférées au serveur. - Par exemple, le serveur recevra votre adresse IP et un numéro de port, qui sont nécessaires pour savoir où envoyer la réponse. - Ces informations sont souvent consignées par le serveur, - ce qui permet au développeur de sites Web de générer des rapports indiquant la fréquence de chargement d'une page Web et le nombre d'adresses IP auxquelles elle a accédé.

- -

Cependant, la plupart des exploitants de sites Web souhaitent obtenir davantage d'informations sur leurs visiteurs, notamment en suivant leur navigation sur plusieurs sites Web. - Il existe de nombreuses techniques différentes, notamment demander ou placer des informations supplémentaires sur le périphérique d'un utilisateur, qui facilitent ce suivi. - Presque tous les navigateurs participeront volontairement à ce suivi sans en informer l'utilisateur. - Privacy Browser est conçu pour fournir à l'utilisateur autant d'informations et de contrôle que possible sur ces techniques de suivi.

- - -

Limites d'Android WebView

- -

Privacy Browser utilise WebView intégré à Android pour afficher les sites Web. Il existe certaines limitations dans les contrôles que WebView applique pour gérer les paramètres de confidentialité. - Par exemple, il n'est pas possible d'activer certaines commandes JavaScript tout en en désactivant d'autres. - À l'avenir, Privacy Browser basculera vers une vue Web personnalisée appelée Privacy WebView.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_proxies_dark.html b/app/src/main/assets/fr/guide_proxies.html similarity index 90% rename from app/src/main/assets/fr/guide_proxies_dark.html rename to app/src/main/assets/fr/guide_proxies.html index d6ebf574..2d7d0dd4 100644 --- a/app/src/main/assets/fr/guide_proxies_dark.html +++ b/app/src/main/assets/fr/guide_proxies.html @@ -22,11 +22,14 @@ - + + + + -

Proxies et leurs limites

+

Proxies et leurs limites

Il existe deux catégories générales de mauvais acteurs qui veulent porter atteinte à la vie privée du Web: des gouvernements malveillants ayant accès à des fournisseurs de services Internet (FAI) et des méga entreprises exploitant des réseaux sociaux et publicitaires. @@ -34,7 +37,7 @@ mais pas de méga sociétés (qui intègrent du code malveillant sur les serveurs Web).

-

Gouvernements Malicieux

+

Gouvernements Malicieux

Les gouvernements malveillants espionnent souvent leurs citoyens pour punir la dissidence ou les activités liées aux droits de l'homme. Ils exploitent généralement les FAI locaux ou peuvent les obliger à divulguer des informations indiquant chaque adresse IP visitée par chaque utilisateur. @@ -49,7 +52,7 @@ Ainsi, les proxies peuvent être utiles, mais elles ne sont pas une panacée.

-

Méga entreprises

+

Méga entreprises

Lorsqu'un utilisateur se connecte à un serveur Web, celui-ci peut voir l'adresse IP de l'utilisateur. Bien que ce ne soit pas une science parfaite, les adresses IP peuvent être transformées en adresses physiques avec une juste précision. @@ -75,7 +78,7 @@ la désactivation des cookies et du stockage du DOM et en utilisant un navigateur difficile à identifier.

-

Utiliser des Proxies

+

Utiliser des Proxies

Malgré leurs limites, les proxies peuvent être utiles dans certaines circonstances. Tor et I2P @@ -83,6 +86,6 @@ Lorsque le proxy est activé dans Privacy Browser, la barre d'application aura un fond bleu clair au lieu du gris clair par défaut. Étant donné que le trafic est acheminé via plusieurs nœuds proxy, l'utilisation d'un proxy en couches est souvent beaucoup plus lente que la connexion directe à Internet.

- + \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_proxies_light.html b/app/src/main/assets/fr/guide_proxies_light.html deleted file mode 100644 index 011d91c9..00000000 --- a/app/src/main/assets/fr/guide_proxies_light.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - -

Proxies et leurs limites

- -

Il existe deux catégories générales de mauvais acteurs qui veulent porter atteinte à la vie privée du Web: - des gouvernements malveillants ayant accès à des fournisseurs de services Internet (FAI) et des méga entreprises exploitant des réseaux sociaux et publicitaires. - Des proxys comme TOR (The Onion Router) et I2P (The Invisible Internet Project) sont utiles pour protéger la confidentialité des gouvernements malveillants (qui espionnent le trafic en transit) - mais pas de méga sociétés (qui intègrent du code malveillant sur les serveurs Web).

- - -

Gouvernements Malicieux

- -

Les gouvernements malveillants espionnent souvent leurs citoyens pour punir la dissidence ou les activités liées aux droits de l'homme. - Ils exploitent généralement les FAI locaux ou peuvent les obliger à divulguer des informations indiquant chaque adresse IP visitée par chaque utilisateur. - Les proxys en couches sont conçus pour vaincre cette atteinte à la vie privée en chiffrant le trafic à partir de l'appareil d'un utilisateur et en le routant via plusieurs serveurs sur Internet - avant de l'envoyer à la destination finale. - Cela signifie qu’aucun FAI, serveur ou site Web individuel ne peut connaître à la fois l’adresse IP de l’appareil de l’utilisateur - et l’adresse IP du serveur Web final. - Les gouvernements malveillants et les FAI qu'ils contrôlent ne peuvent pas savoir à quels serveurs Web un utilisateur accède, - bien qu'ils puissent dire que l'utilisateur utilise un service proxy en couches. - Dans certaines parties du monde, l'utilisation de proxies pourrait être interprétée comme une preuve de comportement illégal («Si vous n'aviez rien à cacher, vous ne crypteriez pas votre trafic») - et les utilisateurs pourraient être punis parce que les gouvernements supposent qu'ils font quelque chose qui est interdit. - Ainsi, les proxies peuvent être utiles, mais elles ne sont pas une panacée.

- - -

Méga entreprises

- -

Lorsqu'un utilisateur se connecte à un serveur Web, celui-ci peut voir l'adresse IP de l'utilisateur. - Bien que ce ne soit pas une science parfaite, les adresses IP peuvent être transformées en adresses physiques avec une juste précision. - Les petits serveurs Web s'appuient généralement sur des adresses IP pour identifier l'emplacement des utilisateurs visitant leur site. - Les proxys sont une bonne solution pour masquer l'emplacement de l'utilisateur à partir de ces serveurs. - Mais les grandes méga-entreprises propriétaires de réseaux de médias sociaux et de publicité utilisent tout un profil d'informations - conçu pour suivre les utilisateurs sur des appareils et des adresses IP. - Ces profils utilisent diverses techniques pour identifier les utilisateurs, notamment JavaScript, les cookies, les identifiants de suivi et les - empreintes digitales du navigateur. - Parce que la grande majorité des sites Web sur Internet téléchargent une annonce publicitaire sur l'un des principaux réseaux ou intègrent - des icônes de réseaux sociaux avec leur code JavaScript associé, - ces sociétés ont créé des profils pour presque tous les utilisateurs en ligne et peuvent suivre leur activité Internet sur des sites indépendants.

- -

Ils suivent chaque site visité, tout ce qui est acheté, chaque carte de crédit utilisée pour effectuer un achat, chaque adresse à laquelle les articles sont expédiés, - et les métadonnées GPS de chaque image téléchargée sur Internet. - Ils établissent un profil de l'âge, du sexe, de l'état matrimonial, de l'adresse, des affiliations politiques, des appartenances religieuses, de la situation de famille, - du nombre d'animaux de compagnie, et tout ce qu'ils peuvent mettre la main dessus. - Ils achètent même des bases de données de transactions par carte de crédit dans les magasins locaux, afin de pouvoir suivre les habitudes d'achat hors ligne des utilisateurs dans leurs profils. - Parce qu'ils disposent déjà d'informations d'adresses beaucoup plus précises sur un utilisateur qu'une adresse IP ne peut le révéler, - les proxies n'offrent aucune véritable protection de la vie privée contre les grosses corporations.

- -

La meilleure protection contre la confidentialité des grandes entreprises consiste à naviguer sur le Web avec JavaScript désactivé, le suivi du blocage des réseaux publicitaires, - la désactivation des cookies et du stockage du DOM et en utilisant un navigateur difficile à identifier.

- - -

Utiliser des Proxies

- -

Malgré leurs limites, les proxies peuvent être utiles dans certaines circonstances. - Tor et I2P - ont des applications Android qui facilitent l'utilisation de leurs réseaux proxy. - Lorsque le proxy est activé dans Privacy Browser, la barre d'application aura un fond bleu clair au lieu du gris clair par défaut. - Étant donné que le trafic est acheminé via plusieurs nœuds proxy, l'utilisation d'un proxy en couches est souvent beaucoup plus lente que la connexion directe à Internet.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_requests_dark.html b/app/src/main/assets/fr/guide_requests.html similarity index 91% rename from app/src/main/assets/fr/guide_requests_dark.html rename to app/src/main/assets/fr/guide_requests.html index 67fa67b3..885d9e4f 100644 --- a/app/src/main/assets/fr/guide_requests_dark.html +++ b/app/src/main/assets/fr/guide_requests.html @@ -1,5 +1,5 @@ + -

Demandes de ressources

+

Demandes de ressources

Lorsqu'une URL est chargée, elle effectue généralement un certain nombre de requêtes de ressources pour le CSS, JavaScript, des images et d'autres fichiers. Les détails sur ces requêtes peuvent être consultés dans la vue Requêtes. Le panneau de navigation contient un lien vers la vue Requêtes et indique également le nombre de requêtes bloquées. Un appui sur une requête affiche les détails de la raison pour laquelle elle a été autorisée ou bloquée.

-

+ +

Privacy Browser inclus quatre listes noires communes basées sur la syntaxe d'Adblock: EasyList, EasyPrivacy, Fanboy’s Annoyance List, et Fanboy’s Social Blocking List. diff --git a/app/src/main/assets/fr/guide_requests_light.html b/app/src/main/assets/fr/guide_requests_light.html deleted file mode 100644 index 9b4ab0a9..00000000 --- a/app/src/main/assets/fr/guide_requests_light.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - -

Demandes de ressources

- -

Lorsqu'une URL est chargée, elle effectue généralement un certain nombre de requêtes de ressources pour le CSS, JavaScript, des images et d'autres fichiers. - Les détails sur ces requêtes peuvent être consultés dans la vue Requêtes. - Le panneau de navigation contient un lien vers la vue Requêtes et indique également le nombre de requêtes bloquées. - Un appui sur une requête affiche les détails de la raison pour laquelle elle a été autorisée ou bloquée.

-

- -

Privacy Browser inclus quatre listes noires communes basées sur la syntaxe d'Adblock: - EasyList, EasyPrivacy, Fanboy’s Annoyance List, et Fanboy’s Social Blocking List. - Ces listes noires sont executées par Privacy Browser dans les 22 sous-listes suivantes, qui vérifient les demandes de ressources dans l'ordre indiqué.

- -
    -
  1. Main Whitelist
  2. -
  3. Final Whitelist
  4. -
  5. Domain Whitelist
  6. -
  7. Domain Initial Whitelist
  8. -
  9. Domain Final Whitelist
  10. -
  11. Third-Party Whitelist
  12. -
  13. Third-Party Domain Whitelist
  14. -
  15. Third-Party Domain Initial Whitelist
  16. -
  17. Main Blacklist
  18. -
  19. Initial Blacklist
  20. -
  21. Final Blacklist
  22. -
  23. Domain Blacklist
  24. -
  25. Domain Initial Blacklist
  26. -
  27. Domain Final Blacklist
  28. -
  29. Domain Regular Expression Blacklist
  30. -
  31. Third-Party Blacklist
  32. -
  33. Third-Party Initial Blacklist
  34. -
  35. Third-Party Domain Blacklist
  36. -
  37. Third-Party Domain Initial Blacklist
  38. -
  39. Third-Party Regular Expression Blacklist
  40. -
  41. Third-Party Domain Regular Expression Blacklist
  42. -
  43. Regular Expression Blacklist
  44. -
- -

Les listes initiales sont comparées au début de l'URL. Les listes finales sont comparées à la fin de l'URL. Les listes de domaines ne vérifient que certains domaines. - Les listes tierces ne s'appliquent que si le domaine racine de la demande est différent du domaine racine de l'URL principale. - Les listes d'expressions régulières respectent la syntaxe d'expression régulière. - Chaque élément de sous-liste comporte une ou plusieurs entrées. - Dans le cas de sous-listes de domaines, la demande de ressource n'est vérifiée par rapport à l'élément que si la première entrée correspond au domaine de l'URL principale.

- -

En raison des limitations de d'Android WebView et de l'accélération du traitement des demandes, Privacy Browser implémente une interprétation simplifiée de la syntaxe d'Adblock. - Cela peut parfois conduire à des faux positifs, dans lesquels les ressources sont autorisées ou bloquées d'une manière qui n'était pas prévue par l'entrée originale. - Une description plus détaillée du traitement des entrées de liste de blocage est disponible à l'adresse stoutner.com.

- -

Privacy Browser a trois listes de blocage supplémentaires. - UltraList et UltraPrivacy - bloquent les annonces et les trackers que EasyList et EasyPrivacy ne font pas. Le troisième bloque toutes les demandes de tiers. - Une demande n'est considérée comme tierce que si le domaine de base de la demande est différent du domaine de base de l'URL. - Par exemple, si www.website.com charge une image à partir de images.website.com, - cette demande n'est pas bloquée en tant que demande tierce car elle partage le même domaine de base que website.com. - Le blocage de toutes les demandes de tiers augmente la confidentialité, mais cette liste de blocage est désactivée par défaut car elle perturbe un grand nombre de sites Web.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_ssl_certificates_dark.html b/app/src/main/assets/fr/guide_ssl_certificates.html similarity index 85% rename from app/src/main/assets/fr/guide_ssl_certificates_dark.html rename to app/src/main/assets/fr/guide_ssl_certificates.html index bf80a712..edbfe03c 100644 --- a/app/src/main/assets/fr/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/fr/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Connectez-vous avec confiance

+

Connectez-vous avec confiance

Lors de la visite d'une URL chiffrée (commençant par HTTPS), le serveur Web utilise un certificat SSL pour chiffrer les informations envoyées au navigateur et identifier le serveur. L'identification du serveur a pour but d'empêcher une machine située entre le navigateur et le serveur Web de se faire passer pour le serveur et de décrypter les informations en transit. @@ -38,14 +41,14 @@

Épingler un certificat SSL indique au navigateur qu'un seul certificat SSL spécifique doit être approuvé pour un domaine particulier. Tout autre certificat, même s'il est valide, sera rejeté.

-

+

Les certificats SSL expirent à une date spécifiée. Par conséquent, même les certificats SSL épinglés devront légitimement être mis à jour de temps à autre. En règle générale, l'épinglage de certificats SSL n'est probablement pas nécessaire dans la majorité des cas. Mais pour ceux qui soupçonnent que des organisations puissantes pourraient les cibler, l'identification de certificats SSL peut détecter et contrecarrer une attaque MITM. Privacy Browser peut également épingler des adresses IP.

-

+

Les certificats SSL peuvent être épinglés dans les paramètres du domaine. Outre la protection contre les attaques MITM, diff --git a/app/src/main/assets/fr/guide_ssl_certificates_light.html b/app/src/main/assets/fr/guide_ssl_certificates_light.html deleted file mode 100644 index f9592123..00000000 --- a/app/src/main/assets/fr/guide_ssl_certificates_light.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - -

Connectez-vous avec confiance

- -

Lors de la visite d'une URL chiffrée (commençant par HTTPS), le serveur Web utilise un certificat SSL pour chiffrer les informations envoyées au navigateur et identifier le serveur. - L'identification du serveur a pour but d'empêcher une machine située entre le navigateur et le serveur Web de se faire passer pour le serveur et de décrypter les informations en transit. - Ce type d'attaque est connu sous le nom d'attaque MITM (Man In The Middle). - Les certificats SSL sont générés par les autorités de certification: sociétés qui vérifient l'identité d'un serveur et produisent un certificat contre rémunération. - Android dispose d'une liste d'autorités de certification de confiance et accepte n'importe lequel de ses certificats, quel que soit son site Web. - Il n'est pas censé être possible pour une entreprise d'acquérir un certificat SSL pour un domaine qu'elle ne contrôle pas. - mais dans la pratique, de nombreux gouvernements et grandes entreprises ont pu le faire.

- -

Épingler un certificat SSL indique au navigateur qu'un seul certificat SSL spécifique doit être approuvé pour un domaine particulier. Tout autre certificat, même s'il est valide, sera rejeté.

- -

- -

Les certificats SSL expirent à une date spécifiée. Par conséquent, même les certificats SSL épinglés devront légitimement être mis à jour de temps à autre. - En règle générale, l'épinglage de certificats SSL n'est probablement pas nécessaire dans la majorité des cas. - Mais pour ceux qui soupçonnent que des organisations puissantes pourraient les cibler, l'identification de certificats SSL peut détecter et contrecarrer une attaque MITM. - Privacy Browser peut également épingler des adresses IP.

- -

- -

Les certificats SSL peuvent être épinglés dans les paramètres du domaine. - Outre la protection contre les attaques MITM, - épingler un certificat auto-signé pour un périphérique tel qu'un routeur sans fil ou un point d'accès supprimera le message d'erreur normalement affiché à chaque chargement de son site Web. - Tapez sur l'onglet actif pour afficher le certificat SSL du site Web courant.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_tracking_ids_dark.html b/app/src/main/assets/fr/guide_tracking_ids.html similarity index 79% rename from app/src/main/assets/fr/guide_tracking_ids_dark.html rename to app/src/main/assets/fr/guide_tracking_ids.html index a3a1654d..78ff4f4a 100644 --- a/app/src/main/assets/fr/guide_tracking_ids_dark.html +++ b/app/src/main/assets/fr/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Ne pas me suivre

+

Ne pas me suivre

Il y a quelques années, le W3C (Consortium World Wide Web) a créé un mécanisme permettant aux navigateurs d'informer les serveurs Web qu'ils ne voudraient pas être suivis. Ceci est réalisé en incluant un en-tête DNT (Ne pas suivre) avec les requêtes Web.

@@ -35,7 +38,7 @@ Par exemple, Yahoo, Google, Microsoft et Facebook ignorent tous au moins certains en-têtes DNT.

-

Modification d'URLs

+

Modification d'URLs

Privacy Browser supprime les sections d'ID de suivi des URLs, telles que ?utm_ dans Google Analytics et ?fbclick= à partir de Facebook. La modification de l'URL peut être désactivée dans les paramètres si cela cause des problèmes.

diff --git a/app/src/main/assets/fr/guide_tracking_ids_light.html b/app/src/main/assets/fr/guide_tracking_ids_light.html deleted file mode 100644 index 45aba978..00000000 --- a/app/src/main/assets/fr/guide_tracking_ids_light.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - -

Ne pas me suivre

- -

Il y a quelques années, le W3C (Consortium World Wide Web) a créé un mécanisme permettant aux navigateurs d'informer les serveurs Web qu'ils ne voudraient pas être suivis. - Ceci est réalisé en incluant un en-tête DNT (Ne pas suivre) avec les requêtes Web.

- -

L'en-tête DNT ne fournit pas vraiment de confidentialité car la plupart des serveurs Web l'ignorent. - Par exemple, Yahoo, Google, Microsoft et Facebook ignorent tous au moins certains en-têtes DNT.

- - -

Modification d'URLs

- -

Privacy Browser supprime les sections d'ID de suivi des URLs, telles que ?utm_ dans Google Analytics et - ?fbclick= à partir de Facebook. La modification de l'URL peut être désactivée dans les paramètres si cela cause des problèmes.

- - \ No newline at end of file diff --git a/app/src/main/assets/fr/guide_user_agent_dark.html b/app/src/main/assets/fr/guide_user_agent.html similarity index 92% rename from app/src/main/assets/fr/guide_user_agent_dark.html rename to app/src/main/assets/fr/guide_user_agent.html index 7b570651..73e2e1d8 100644 --- a/app/src/main/assets/fr/guide_user_agent_dark.html +++ b/app/src/main/assets/fr/guide_user_agent.html @@ -22,11 +22,14 @@ - + + + + -

Identification du navigateur

+

Identification du navigateur

Lorsque les navigateurs Web se connectent à des sites Web, ils envoient un agent utilisateur, qui identifie le navigateur et les fonctionnalités de rendu dont il dispose. Le serveur Web peut utiliser ces informations pour choisir la version du site Web à envoyer au navigateur. @@ -40,7 +43,7 @@ La capture d'écran ci-dessous montre un Pixel 2 XL sous Android 10 avec Android System WebView 84.0.4147.125 installé. La plupart des serveurs Web le reconnaîtront comme un navigateur mobile et afficheront la version mobile du site, le cas échéant.

- +

L'agent utilisateur contient suffisamment d'informations pour que, parfois, seuls quelques visiteurs d'un site Web soient identiques. Si l'agent utilisateur est combiné à une autre information d'identification non unique, il en résulte souvent une empreinte digitale unique. @@ -49,7 +52,7 @@ Si ce test est exécuté avec JavaScript activé, la quantité d'informations divulguées augmente considérablement. Les Fuites du navigateur et les Suis-je unique sont également de bonnes sources d'informations sur ce sujet.

- +

Il existe plusieurs agents d'utilisateur prédéfinis qui correspondent aux navigateurs et systèmes d'exploitation courants. Pour les empreintes digitales du navigateur, tout ce qui est rare est plus facile à suivre. diff --git a/app/src/main/assets/fr/guide_user_agent_light.html b/app/src/main/assets/fr/guide_user_agent_light.html deleted file mode 100644 index 2529c193..00000000 --- a/app/src/main/assets/fr/guide_user_agent_light.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - -

Identification du navigateur

- -

Lorsque les navigateurs Web se connectent à des sites Web, ils envoient un agent utilisateur, qui identifie le navigateur et les fonctionnalités de rendu dont il dispose. - Le serveur Web peut utiliser ces informations pour choisir la version du site Web à envoyer au navigateur. - Par exemple, de nombreux sites Web ont des versions différentes pour les navigateurs de bureau et mobiles.

- -

Par défaut, Privacy Browser utilise son propre agent utilisateur, à savoir PrivacyBrowser/1.0. Cela envoie un minimum d'informations au serveur Web. - Étant donné que les serveurs Web ne reconnaissent pas qu'il s'agit d'un agent d'utilisateur mobile, ils affichent généralement la version de bureau du site.

- -

En comparaison, l'agent utilisateur par défaut de WebView divulgue une grande quantité d'informations sur le matériel et les logiciels du périphérique. - Sur l'écran Paramètres, sélectionner WebView Par défaut car l'Agent utilisateur affiche l'agent utilisateur qui sera envoyé. - La capture d'écran ci-dessous montre un Pixel 2 XL sous Android 10 avec Android System WebView 84.0.4147.125 installé. - La plupart des serveurs Web le reconnaîtront comme un navigateur mobile et afficheront la version mobile du site, le cas échéant.

- - - -

L'agent utilisateur contient suffisamment d'informations pour que, parfois, seuls quelques visiteurs d'un site Web soient identiques. - Si l'agent utilisateur est combiné à une autre information d'identification non unique, il en résulte souvent une empreinte digitale unique. - Electronic Frontier Foundation a créé un outil appelé Panopticlick - afin de démontrer la quantité d'informations pouvant être collectées à partir de ces sources. - Si ce test est exécuté avec JavaScript activé, la quantité d'informations divulguées augmente considérablement. - Les Fuites du navigateur et les Suis-je unique sont également de bonnes sources d'informations sur ce sujet.

- - - -

Il existe plusieurs agents d'utilisateur prédéfinis qui correspondent aux navigateurs et systèmes d'exploitation courants. - Pour les empreintes digitales du navigateur, tout ce qui est rare est plus facile à suivre. - Si Privacy Browser devient commun et que de nombreuses personnes utilisent PrivacyBrowser/1.0 en tant qu'agent utilisateur, ce sera un bon choix pour la confidentialité. - Firefox ou Chrome sont les agents utilisateurs les plus courants, mais ils se mettent à jour automatiquement et leurs numéros de version changent si rapidement - qu'il est probable que les agents utilisateurs inclus dans Privacy Browser soient souvent en décalage avec la majorité des agents utilisateurs dans les journaux du serveur.

- -

Certains sites Web ne fonctionnent pas correctement s'ils ne reconnaissent pas l'agent utilisateur. - L'utilisation des paramètrages de domaine pour définir l'agent utilisateur sur WebView par défaut , - ou sur un autre agent utilisateur communément reconnu, résout généralement le problème. - WebView d'Android ne permet pas à l'agent utilisateur d'être vide. Si tel est le cas, WebView envoie simplement l'agent utilisateur par défaut au serveur.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/about_changelog_dark.html b/app/src/main/assets/it/about_changelog.html similarity index 99% rename from app/src/main/assets/it/about_changelog_dark.html rename to app/src/main/assets/it/about_changelog.html index 67d2d56d..7b8c72c4 100644 --- a/app/src/main/assets/it/about_changelog_dark.html +++ b/app/src/main/assets/it/about_changelog.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/main/assets/it/about_changelog_light.html b/app/src/main/assets/it/about_changelog_light.html deleted file mode 100644 index fbac6d69..00000000 --- a/app/src/main/assets/it/about_changelog_light.html +++ /dev/null @@ -1,695 +0,0 @@ - - - - - - - - - - -

3.5.1 (versione codice 51)

-

28 Agosto 2020 - minima API 19, target API 29

-
    -
  • Correzione di un baco che impediva il caricamento - di link da altre applicazioni se Privacy Browser era stato chiuso dal sistema operativo in background.
  • -
  • Correzione di un baco che impediva alla app di inizializzarsi correttamente - quando il tema della app era impostato all'opposto di quello del sistema operativo.
  • -
- -

3.5 (versione codice 50)

-

18 Agosto 2020 - minima API 19, target API 29

- - -

3.4.1 (versione codice 49)

-

1 Aprile 2020 - minima API 19, target API 29

- - -

3.4 (versione codice 48)

-

28 Marzo 2020 - minima API 19, target API 29

- - -

3.3 (versione codice 47)

-

3 Gennaio 2020 - minima API 19, target API 29

- - -

3.2 (versione codice 46)

-

20 Luglio 2019 - minima API 19, target API 28

- - -

3.1 (versione codice 45)

-

27 Maggio 2019 - minima API 19, target API 28

- - -

3.0.1 (versione codice 44)

-

2 Maggio 2019 - minima API 19, target API 28

- - -

3.0 (versione codice 43)

-

26 Aprile 2019 - minima API 19, target API 28

-
    -
  • Aggiunta della navigazione a schede.
  • -
  • Correzione di un baco che tagliava la parte bassa di WebView quando era disabilitato lo scrolling della barra dell'applicazione.
  • -
  • Correzione di un baco che provocava il riavvio di Privacy Browser ogni volata che veniva connessa o disconnessa una tastiera Bluetooth.
  • -
  • Aggiornamento della traduzione Italiana fornita da Francesco Buratti.
  • -
  • Aggiornamento della traduzione in Russo.
  • -
  • Aggiornamento della traduzione Spagnola fornita da Jose A. León.
  • -
  • Aggiornamento della traduzione Tedesco fornita da Bernhard G. Keller.
  • -
  • Traduzione parziale in Turco.
  • -
- -

2.17.1 (versione codice 42)

-

5 Marzo 2019 - minima API 19, target API 28

-
    -
  • Correzione di un baco causato da segnalibri con icona troppo grande.
  • -
  • Introduzione della possibilità di spostare Privacy Browser su memoria SD.
  • -
- -

2.17 (versione codice 41)

-

27 Febbraio 2019 - minima API 19, target API 28

- - -

2.16 (versione codice 40)

-

31 Gennaio 2019 - minima API 19, target API 28

- - -

2.15.1 (versione codice 39)

-

27 Dicembre 2018 - minima API 19, target API 28

- - -

2.15 (versione codice 38)

-

24 Dicembre 2018 - minima API 19, target API 28

- - -

2.14 (versione codice 37)

-

8 Dicembre 2018 - minima API 19, target API 28

- - -

2.13 (versione codice 36)

-

29 Ottobre 2018 - minima API 19, target API 28

- - -

2.12 (versione codice 35)

-

31 Luglio 2018 - minima API 19, target API 27

- - -

2.11 (versione codice 34)

-

10 Luglio 2018 - minima API 19, target API 27

- - -

2.10 (versione codice 33)

-

24 Maggio 2018 - minima API 19, target API 27

- - -

2.9 (versione codice 32)

-

9 Maggio 2018 - minima API 19, target API 27

- - -

2.8.1 (versione codice 31)

-

1 Marzo 2018 - minima API 19, target API 27

- - -

2.8 (versione codice 30)

-

22 Febbraio 2018 - minima API 19, target API 27

- - -

2.7.2 (versione codice 29)

-

22 Novembre 2017 - minima API 19, target API 26

- - -

2.7.1 (versione codice 28)

-

9 Novembre 2017 - minima API 19, target API 26

-
    -
  • Eliminato un crash che si verificava nel caso di editing dei segnalibri dal nuovo cassetto dei segnalibri.
  • -
- -

2.7 (versione codice 27)

-

7 Novembre 2017 - minima API 19, target API 26

-
    -
  • Aggiunta di un cassetto dei segnalibri accessibile scorrendo da destra.
  • -
  • Corretto un difetto della Modalità Notte per cui appariva uno sfondo bianco durante il caricamento di pagine nuove.
  • -
  • Aggiornamento degli user agents.
  • -
  • Adeguamento della API target a 26 (Android Oreo, 8.0.0).
  • -
  • Aggiornamento della traduzione Italiana fornita da Francesco Buratti.
  • -
  • Aggiornamento della traduzione Spagnola fornita da Jose A. León.
  • -
- -

2.6 (versione codice 26)

-

18 Settembre 2017 - minima API 19, target API 25

- - -

2.5 (versione codice 25)

-

26 Agosto 2017 - minima API 19, target API 25

- - -

2.4 (versione codice 24)

-

23 Giugno 2017 - minima API 19, target API 25

- - -

2.3 (versione codice 23)

-

26 Maggio 2017 - minima API 19, target API 25

- - -

2.2 (versione codice 22)

-

27 Aprile 2017 - minima API 19, target API 25

- - -

2.1 (versione codice 21)

-

25 Marzo 2017 - minima API 19, target API 25

- - -

2.0.1 (versione codice 20)

-

21 Marzo 2017 - minima API 19, target API 25

- - -

2.0 (versione codice 19)

-

16 Marzo 2017 - minima API 19, target API 25

- - -

1.15 (versione codice 18)

-

11 Febbraio 2017 - minima API 19, target API 25

- - -

1.14.1 (versione codice 17)

-

4 Gennaio 2017 - minima API 19, target API 25

- - -

1.14 (versione codice 16)

-

26 Dicembre 2016 - minima API 19, target API 25

- - -

1.13 (versione codice 15)

-

28 Novembre 2016 - minima API 19, target API 24

- - -

1.12 (versione codice 14)

-

9 Novembre 2016 - minima API 19, target API 24

- - -

1.11 (versione codice 13)

-

22 Ottobre 2016 - minima API 19, target API 24

- - -

1.10 (versione codice 12)

-

15 Settembre 2016 - minima API 19, target API 23

- - -

1.9.1 (versione codice 11)

-

27 Agosto 2016 - minima API 19, target API 23

-
    -
  • Changed asset image links to relative paths so Privacy Browser will build on F-Droid.
  • -
- -

1.9 (versione codice 10)

-

26 Agosto 2016 - minima API 19, target API 23

- - -

1.8 (versione codice 9)

-

16 Luglio 2016 - minima API 19, target API 23

- - -

1.7 (versione codice 8)

-

16 Giugno 2016 - minima API 19, target API 23

- - -

1.6 (versione codice 7)

-

11 Maggio 2016 - minima API 15, target API 23

- - -

1.5 (versione codice 6)

-

5 Maggio 2016 - minima API 15, target API 23

-
    -
  • Add the option to disable swipe to refresh so that certain websites, like Google Maps, will function correctly.
  • -
- -

1.4 (versione codice 5)

-

28 Aprile 2016 - minima API 15, target API 23

- - -

1.3 (versione codice 4)

-

7 Aprile 2016 - minima API 15, target API 23

- - -

1.2 (versione codice 3)

-

23 Marzo 2016 - minima API 15, target API 23

- - -

1.1 (versione codice 2)

-

9 Marzo 2016 - minima API 10, target API 23

-
    -
  • Separate the standard and the free flavors so that Privacy Browser builds correctly on F-Droid.
  • -
- -

1.0 (versione codice 1)

-

24 Febbraio 2016 - minima API 10, target API 23

-
    -
  • Toggle JavaScript, DOM storage, and cookies.
  • -
  • Set default enabled status for JavaScript, DOM storage, and cookies.
  • -
  • Clear DOM storage and cookies.
  • -
  • Add shortcuts to the home screen.
  • -
  • Utilize download manager.
  • -
  • Navigate forward and back.
  • -
  • Cut, copy, paste URLs.
  • -
  • Share URLs.
  • -
  • Set homepage.
  • -
  • Scroll URL bar.
  • -
  • Maintain WebView scroll location when rotating screen.
  • -
  • Swipe to refresh WebView.
  • -
  • Play full screen videos (requires JavaScript to be enabled).
  • -
  • Clear and Exit menu item.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/it/about_contributors_dark.html b/app/src/main/assets/it/about_contributors.html similarity index 89% rename from app/src/main/assets/it/about_contributors_dark.html rename to app/src/main/assets/it/about_contributors.html index b6c2fa4f..0f4cb5d9 100644 --- a/app/src/main/assets/it/about_contributors_dark.html +++ b/app/src/main/assets/it/about_contributors.html @@ -22,7 +22,10 @@ - + + + + diff --git a/app/src/main/assets/it/about_contributors_light.html b/app/src/main/assets/it/about_contributors_light.html deleted file mode 100644 index 989faa6e..00000000 --- a/app/src/main/assets/it/about_contributors_light.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - -

Sviluppatori

-

Privacy Browser è sviluppato da Soren Stoutner.

- -

Programmatori

- Thomas Jensen
- Hendrik Knackstedt - -

Traduttori

- Francesco Buratti: Italiano
- Thiago Nazareno Conceição Silva de Jesus: Portoghese Brasiliano
- Kévin LE FLOHIC: Francese
- Bernhard G. Keller: Tedesco
- Jose A. León: Spagnolo - -

Traduttori precedenti

- Stefan Erhardt: Tedesco
- Aaron Gerlach: Tedesco - -
-
-

Si accettano contributi per lo sviluppo di codice e traduzioni.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/about_licenses_light.html b/app/src/main/assets/it/about_licenses.html similarity index 90% rename from app/src/main/assets/it/about_licenses_light.html rename to app/src/main/assets/it/about_licenses.html index 96fac142..1511164f 100644 --- a/app/src/main/assets/it/about_licenses_light.html +++ b/app/src/main/assets/it/about_licenses.html @@ -20,7 +20,10 @@ - + + + + @@ -64,100 +67,100 @@ Il file modificato è rilasciato sotto la Licenza GPLv3+.

Icone

-

- sono state derivate da security e language, che fanno parte +

+ sono state derivate da security e language, che fanno parte dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. Il testo completo della Licenza è riportato di seguito. Copyright delle modifiche © 2016 Soren Stoutner. Le immagini risultanti sono rilasciate sotto Licenza GPLv3+.

-

è stata derivata da elementi di folder e di exit_to_app, che fanno parte +

è stata derivata da elementi di folder e di exit_to_app, che fanno parte dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. Copyright delle modifiche © 2017 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da elementi di bookmark e di create_new_folder, che fanno parte +

è stata derivata da elementi di bookmark e di create_new_folder, che fanno parte dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. Copyright delle modifiche © 2017 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da create_new_folder, +

è stata derivata da create_new_folder, che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. Copyright delle modifiche © 2017 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da exit_to_app, +

è stata derivata da exit_to_app, che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. Copyright delle modifiche © 2017 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da compare, +

è stata derivata da compare, che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. Copyright delle modifiche © 2017 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da sort, +

è stata derivata da sort, che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. Copyright delle modifiche © 2019 Soren Stoutner. L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

cookie è stata creata da Google. +

cookie è stata creata da Google. E' stata rilasciata con Licenza Apache 2.0 e può essere scaricata dirattamente dal Material Design Icons.Non è stata modificata ad eccezione del colore e della dimensione.

Le seguenti icone derivano dall'Android Material icon set, che è rilasciato sotto Licenza Apache 2.0. Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice. Le icone con i loro nomi originali sono riportate di seguito.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/it/about_licenses_dark.html b/app/src/main/assets/it/about_licenses_dark.html deleted file mode 100644 index 8df59a4d..00000000 --- a/app/src/main/assets/it/about_licenses_dark.html +++ /dev/null @@ -1,1162 +0,0 @@ - - - - - - - - - - -

Copyright

-

Privacy Browser copyright © 2015-2020: Soren Stoutner.

- -

Licenza

-

Privacy Browser è rilasciato con Licenza GPLv3+ . - Il testo completo è riportato per intero nella parte finale di questo documento. Si precisa che questa è una traduzione non ufficiale della - GNU General Public License, non è stata pubblicata dalla Free Software Foundation, e non stabilisce i termini legali di distribuzione del software - che usa la GNU GPL. Soltanto la versione originale in inglese della GNU GPL fa ciò. - Lo scopo di questa traduzione è unicamente quello di aiutare gli utenti di lingua italiana a comprendere la GNU GPL, e pertanto in caso di eventuali discrepanze tra - traduzione e versione originale in inglese, prevarrà e sarà unicamente la versione originale ad avere valore legale. - E' inoltre ammessa la modifica e la pubblicazione di questa traduzione, ma solamente in accordo ai termini qui riportati. - Il codice sorgente è disponibile su git.stoutner.com.

- -

Blocklist

-

EasyList e EasyPrivacy - sono sotto doppia licenza con le licenze GPLv3+ - e Creative Commons Attribution-ShareAlike 3.0+ Unported. Privacy Browser le incorpora utilizzando l'opzione GPLv3+.

- -

La Fanboy’s Annoyance List e la Fanboy’s Social Blocking List - sono rilasciate sotto la licenza Creative Commons Attribution 3.0 Unported, - che è compatibile con la licenza GPLv3+. Le liste sono incluse senza modifiche in Privacy Browser.

- -

E' possibile reperire maggiori informazioni sulle block list sul sito web EasyList.

- -

Librerie

-

Privacy Browser è compilato utilizzando le Librerie AndroidX, - le Librerie Kotlin, - e il codice disponibile nella Google Material Maven repository, - entrambi rilasciati con Licenza Apache 2.0.

- -

La versione gratuita di Privacy Browser è compilata con Firebase Ads, - che è rilasciato sotto la Licenza Android Software Development Kit.

- -

Classi

-

com.stoutner.privacybrowser.views.CheckedLinearLayout è la versione modificata di una classe contenuta nel codice sorgente della - Fotocamera Android. - Il file originale è stato rilasciato sotto la Licenza Apache 2.0. - Il file modificato è rilasciato sotto la Licenza GPLv3+.

- -

Icone

-

- sono state derivate da security e language, che fanno parte - dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. - Il testo completo della Licenza è riportato di seguito. Copyright delle modifiche © 2016 Soren Stoutner. - Le immagini risultanti sono rilasciate sotto Licenza GPLv3+.

-

è stata derivata da elementi di folder e di exit_to_app, che fanno parte - dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. - Copyright delle modifiche © 2017 Soren Stoutner. - L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da elementi di bookmark e di create_new_folder, che fanno parte - dell'Android Material icon set e sono state rilasciate sotto Licenza Apache 2.0. - Copyright delle modifiche © 2017 Soren Stoutner. - L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da create_new_folder, - che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. - Copyright delle modifiche © 2017 Soren Stoutner. - L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da exit_to_app, - che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. - Copyright delle modifiche © 2017 Soren Stoutner. - L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

è stata derivata da compare, - che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. - Copyright delle modifiche © 2017 Soren Stoutner. -

è stata derivata da sort, - che fa parte dell'Android Material icon set ed è stata rilasciata sotto Licenza Apache 2.0. - Copyright delle modifiche © 2019 Soren Stoutner. - L'immagine risultante è rilasciata sotto Licenza GPLv3+.

-

cookie è stata creata da Google. - E' stata rilasciata con Licenza Apache 2.0 - e può essere scaricata dirattamente dal Material Design Icons. Non è stata modificata ad eccezione del colore e della dimensione.

-

Le seguenti icone derivano dall'Android Material icon set, - che è rilasciato sotto Licenza Apache 2.0. - Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice. - Le icone con i loro nomi originali sono riportate di seguito.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Versione 3, 29 Giugno 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

A chiunque è permesso copiare e ridistribuire copie esatte di questo documento di licenza, - ma non è in alcun modo consentito apportarvi modifiche. -

- -

Premessa

- -

La GNU General Public License è una licenza libera, basata su copyleft per software e altri tipi di opere.

- -

Le licenze della maggior parte del software e di altre opere materiali - sono pensate per togliere la libertà di condividere e modificare tali opere. - Al contrario, la GNU General Public License ha l'obiettivo di garantire - la libertà di condividere e modificare tutte le versioni di un programma - e di fare in modo che esso rimanga software libero per tutti gli utenti. - Noi, Free Software Foundation, usiamo la GNU General Public License - per la maggior parte del nostro software; essa viene applicata anche a qualunque - altro software rilasciato dall'autore sotto questa licenza. - Chiunque può utilizzare questa licenza per i propri programmi.

- -

Quando parliamo di software libero (free software), ci riferiamo al concetto di libertà, - non al prezzo. Le nostre General Public License sono concepite per garantire - che chiunque abbia la libertà di distribuire copie di software libero - (anche dietro pagamento di un prezzo, se lo desidera), che chiunque riceva o possa ricevere - il codice sorgente se lo vuole, che chiunque possa apportare modifiche al software - o utilizzarne solo alcune porzioni in altri software liberi, e che chiunque sappia - che ha il diritto di fare tutte queste cose.

- -

Per proteggere i vostri diritti, abbiamo la necessità di impedire che altri - vi neghino questi diritti o vi obblighino a rinunciarvi. - Pertanto, chiunque distribuisce o modifica software rilasciato con questa licenza - si assume dei precisi doveri: il dovere di rispettare la libertà degli altri.

- -

Per esempio, chi distribuisce copie di un programma rilasciato sotto questa licenza, - sia a titolo gratuito che mediante pagamento di un prezzo,è obbligato a riconoscere - a chi riceve il software esattamente gli stessi diritti che ha ricevuto. - Deve garantire che chi riceva il software abbia o possa avere accesso al codice sorgente. - E deve far conoscere ai destinatari del software queste condizioni, - così che essi conoscano quali sono i loro diritti.

- -

Gli sviluppatori che utilizzano la GNU GPL proteggono i vostri diritti in due modi: - (1) Rivendicando il copyright sul software, e - (2) offrendovi questa licenza che vi garantisce il diritto legale di copiarlo e/o di modificarlo.

- -

Al fine di proteggere gli sviluppatori e gli autori, la GPL spiega chiaramente - che non esiste nessuna garanzia per questo software libero. Nell'interesse - sia degli utenti che degli autori, la GPL impone che le versioni modificate del software - vengano esplicitamente marcate come “modificate”, in modo tale che eventuali problemi - non vengano erroneamente attribuiti agli autori delle versioni precedenti.

- -

Alcuni dispositivi sono progettati per negare agli utenti l'installazione - o l'esecuzione di versioni modificate del software installato sugli stessi, - anche se il costruttore si riserva la possibilità di farlo. - Ciò è fondamentalmente incompatibile con l'obiettivo di garantire la libertà - degli utenti di modificare il software. Una ripetizione sistematica di tali abusi - avviene nel campo dei dispositivi per usi individuali, e ciò rende questi abusi - ancora più inaccettabili. Pertanto, abbiamo realizzato questa versione della GPL - al fine di proibire una tale pratica per questo tipo di prodotti. Se problemi simili - dovessero sorgere in altri ambiti, saremo pronti ad estendere queste misure - a questi nuovi ambiti in versioni future della GPL, nella maniera che si renderà necessaria - per difendere la libertà degli utenti.

- -

In conclusione, tutti i programmi sono costantemente minacciati dai brevetti sul software. - Gli Stati non dovrebbero permettere ai brevetti di limitare lo sviluppo - e l'utilizzo di software per computer, ma nei Paesi in cui ciò avviene noi vogliamo evitare - il pericolo che i brevetti applicati ad un programma libero possano renderlo, a tutti gli effetti, - proprietario. Per impedire ciò, la GPL assicura che non è possibile utilizzare - i brevetti sul software per rendere un programma non libero.

- -

I termini e le condizioni esatte per la copia, la distribuzione e la modifica del software - sono riportate di seguito.

- -

TERMINI E CONDIZIONI

- -

0. Definizioni.

- -

“Questa Licenza” fa riferimento alla versione 3 della GNU General Public License.

- -

“Copyright” indica anche leggi simili al copyright che riguardano altri tipi di opere, - come le maschere per la produzione di semiconduttori.

- -

“Il Programma” indica qualunque opera che sia soggetta a copyright e che sia rilasciata - sotto questa Licenza. I detentori della licenza sono indicati come “tu”. “Licenziatari” e - “destinatari” possono essere individui o organizzazioni.

- -

“Modificare” un'opera significa copiare o adattare tutta o parte dell'opera - in una maniera che richieda un permesso di copyright, e non indica la semplice azione - di fare una esatta copia dell'opera. L'opera risultante viene chiamata “versione modificata” - dell'opera precedente, oppure viene detta opera “basata sulla” opera precedente.

- -

Un'“opera coperta da questa licenza” indica il Programma originale non modificato - oppure un'opera basata sul Programma.

- -

“Propagare” un'opera significa fare una qualunque cosa con essa che, - in mancanza di un esplicito permesso, ti renda direttamente o indirettamente perseguibile - per violazione secondo le vigenti normative sul copyright, - ad eccezione della semplice esecuzione del Programma su un computer - o della modifica di una copia privata. La Propagazione include la copia, - la distribuzione (con o senza modifiche), la messa a disposizione al pubblico e, - in alcuni stati, altre attività simili e connesse.

- -

“Distribuire” un'opera indica qualunque forma di propagazione - che permetta a terze parti di effettuare o ricevere delle copie. - La mera interazione con un utente attraverso una rete di computer, - senza che ci sia alcun trasferimento di una copia, non è considerata “Distribuzione”.

- -

Una interfaccia utente interattiva fornisce delle “Adeguate Informazioni Legali” - soltanto nel caso in cui includa una apposita funzionalità, resa adeguatamente visibile, che - (1) visualizzi un'adeguata informazione di copyright, e - (2) informi l'utente che non c'è alcuna garanzia sull'opera (eccetto nel caso in cui - delle garanzie sono espressamente fornite), dica che il licenziatario può distribuire - l'opera utilizzando questa Licenza, indichi come è possibile prendere visione di una copia - di questa Licenza. - Se l'interfaccia presenta una lista di comandi o di opzioni, come ad esempio un menù, - una delle opzioni fornite nella lista deve rispettare questa condizione.

- -

1. Codice Sorgente.

- -

Il “codice sorgente” di un'opera indica la forma più indicata - dell'opera per poter effettuare modifiche su di essa. Il “codice oggetto” - indica qualunque forma dell'opera che non sia codice sorgente.

- -

Una “Interfaccia Standard” è una interfaccia che risponde ad uno - standard ufficiale definito da un ente di standardizzazione riconosciuto - o, nel caso di interfacce specifiche per un particolare linguaggio di - programmazione, una interfaccia che è largamente utilizzata dagli - sviluppatori per sviluppare in tale linguaggio.

- -

Le “Librerie di Sistema” di un eseguibile includono qualunque cosa, - eccetto l'opera nel suo insieme, che (a) sia inclusa nella normale forma - di pacchettizzazione di un “Componente Principale”, ma che non è - parte di quel Componente Principale, e (b) che serva solo a consentire - l'uso dell'opera con quel Componente Principale, o per implementare una - Interfaccia Standard per la quale esista una implementazione disponibile - al pubblico in forma sorgente. Un “Componente Principale”, in questo - contesto, è un componente essenziale (kernel, gestore di finestre - eccetera) dello specifico sistema operativo (ammesso che ce ne sia uno) - sul quale l'eseguibile esegue, o un compilatore utilizzato per produrre - il programma, o un interprete di codice oggetto utilizzato per eseguire - il programma.

- -

Il “Sorgente Corrispondente” per un'opera in forma di codice oggetto - è il codice sorgente necessario per generare, installare e (per un - programma eseguibile) eseguire il codice oggetto e per modificare - l'opera, inclusi gli script per controllare le suddette attività di - generazione, installazione ed esecuzione. Non sono incluse le Librerie - di Sistema usate dal programma, o gli strumenti di utilità generica o i - programmi liberamente accessibili che sono utilizzati, senza modifiche, - per portare a termine le suddette attività ma che non fanno parte - dell'opera. Per esempio, il sorgente corrispondente include i file con - le definizioni delle interfacce associati ai file sorgente dell'opera, e - il codice sorgente delle librerie condivise e sottoprogrammi collegati - dinamicamente specificatamente necessari per il programma, ad esempio a - causa di stretta comunicazione dati o di controllo di flusso tra questi - sottoprogrammi e altre parti del programma.

- -

Il Sorgente Corrispondente non include nulla che l'utente possa - rigenerare automaticamente da altre parti del Sorgente Corrispondente - stesso.

- -

Il Sorgente Corrispondente di un'opera in forma di codice sorgente è - l'opera stessa.

- -

2. Principali Diritti.

- -

Tutti i diritti garantiti da questa Licenza sono garantiti per la durata - del copyright sul Programma, e sono irrevocabili ammesso che le - condizioni qui riportate siano rispettate. Questa Licenza afferma esplicitamente il - tuo permesso illimitato di eseguire il Programma non modificato. Il - risultato dell'esecuzione di un programma coperto da questa Licenza è - a sua volta coperto da questa Licenza solo se il risultato stesso, a - causa del suo contenuto, è un'opera coperta da questa Licenza. Questa - Licenza riconosce il tuo diritto all'uso legittimo o altri diritti - equivalenti, come stabilito dalla legislazione sul copyright.

- -

Puoi creare, eseguire e propagare programmi che tu non distribuisci - coperti da questa Licenza, senza alcuna condizione fino a quando la tua - Licenza rimane valida. Puoi distribuire opere coperte da questa Licenza - ad altri al solo scopo di ottenere che essi facciano delle modifiche al - programma esclusivamente per te, o che ti forniscano dei servizi per - l'esecuzione di queste opere, ammesso che tu rispetti i termini di - questa Licenza nel distribuire tutto il materiale per il quale non - detieni il copyright. Coloro i quali creano o eseguono per conto tuo un - programma coperto da questa Licenza lo fanno esclusivamente in tua vece, - sotto la tua direzione e il tuo controllo, in maniera tale che sia - proibito a costoro effettuare copie di materiale di cui detieni il - copyright al di fuori della relazione che intrattengono nei tuoi - confronti.

- -

Distribuire opere coperte da licenza in qualunque altra circostanza è - consentito soltanto alle condizioni espresse in seguito. Non è - consentito sottolicenziare le opere: la sezione 10 lo rende non - necessario.

- -

3. Protezione dei diritti legali degli utenti dalle leggi - anti-elusione.

- -

Nessun programma protetto da questa Licenza può essere considerato - parte di una misura tecnologica di restrizione che sottostia ad alcuna - delle leggi che soddisfano l'articolo 11 del “WIPO copyright treaty” - adottato il 20 Dicembre 1996, o a simili leggi che proibiscono o - limitano l'elusione di tali misure tecnologiche di restrizione.

- -

Quando distribuisci un programma coperto da questa Licenza, rifiuti - tutti i poteri legali atti a proibire l'elusione di misure tecnologiche - di restrizione ammesso che tale elusione sia effettuata nell'esercizio - dei diritti garantiti da questa Licenza riguardo al programma coperto da - questa Licenza, e rinunci all'intenzione di limitare l'operatività o - la modifica del programma per far valere, contro i diritti degli utenti - del programma, diritti legali tuoi o di terze parti che impediscano - l'elusione di misure tecnologiche di restrizione.

- -

4. Distribuzione di Copie Esatte.

- -

Ti è permesso distribuire copie esatte del codice sorgente del - Programma come lo hai ricevuto, con qualunque mezzo, ammesso che tu - aggiunga in maniera appropriata su ciascuna copia una appropriata nota - di copyright; che tu lasci intatti tutti gli avvisi che affermano che - questa Licenza e tutte le clausole non-permissive aggiunte in accordo - con la sezione 7 sono valide per il codice che distribuisci; che tu - lasci intatti tutti gli avvisi circa l'assenza di garanzia; che tu - fornisca a tutti i destinatari una copia di questa Licenza assieme al - Programma.

- -

Puoi richiedere il pagamento di un prezzo o di nessun prezzo per - ciascuna copia che distribuisci, e puoi offrire supporto o garanzia - a pagamento.

- -

5. Distribuzione di Versioni modificate del sorgente.

- -

Puoi distribuire un'opera basata sul Programma, o le modifiche per - produrla a partire dal Programma, nella forma di codice sorgente secondo - i termini della sezione 4, ammesso che tu rispetti anche tutte le - seguenti condizioni:

- -
    -
  • a) L'opera deve recare con sè delle informazioni adeguate che - affermino che tu l'hai modificata, indicando la data di modifica.
  • - -
  • b) L'opera deve recare informazioni adeguate che affermino che essa è - rilasciata sotto questa Licenza e sotto le condizioni aggiuntive - secondo quanto indicato dalla Sezione 7. Questa condizione modifica la - condizione espressa alla sezione 4 di “lasciare intatti tutti gli - avvisi”.
  • - -
  • c) Devi rilasciare l'intera opera, nel suo complesso, sotto questa - Licenza a chiunque venga in possesso di una copia di essa. Questa - Licenza sarà pertanto applicata, assieme ad eventuali clausole - aggiunte in osservanza della Sezione 7, all'opera nel suo complesso, a - tutte le sue parti, indipendentemente da come esse siano - pacchettizzate. Questa Licenza nega il permesso di licenziare l'opera - in qualunque altro modo, ma non rende nullo un tale permesso ammesso - che tu lo abbia ricevuto separatamente.
  • - -
  • d) Se l'opera ha delle interfacce utente interattive, ciascuna deve - mostrare delle Adeguate Informazioni Legali; altrimenti, se il - Programma ha delle interfacce interattive che non visualizzano delle - Adeguate Informazioni Legali, il tuo programma non è obbligato a - visualizzarle.
  • -
- -

La giustapposizione di un'opera coperta da questa Licenza assieme ad - altre opere separate e indipendenti, che non sono per loro natura - estensioni del Programma, e che non sono combinate con esso a formare un - altro programma più grande, dentro o in uno stesso supporto di - memorizzazione a lungo termine o di distribuzione, è semplicemente - detto “aggregato” se la raccolta e il suo copyright non sono - utilizzati per limitare l'accesso o i diritti legali degli utenti della - raccolta stessa oltre ciò che ciascun singolo programma - consente. L'inclusione di un programma coperto da questa Licenza in un - aggregato non comporta l'applicazione di questa Licenza alle altre parti - dell'aggregato.

- -

6. Distribuzione in formato non-sorgente.

- -

Puoi distribuire un programma coperto da questa Licenza in formato di - codice oggetto secondo i termini delle sezioni 4 e 5, ammesso che tu - fornisca anche il Sorgente Corrispondente in formato comprensibile - da un computer sotto i termini di questa stessa Licenza, in uno dei - seguenti modi:

- -
    -
  • a) Distribuendo il codice oggetto in, o contenuto in, un prodotto - fisico (inclusi i mezzi fisici di distribuzione), accompagnato dal - Sorgente Corrispondente su un supporto fisico duraturo comunemente - utilizzato per lo scambio di software.
  • - -
  • b) Distribuendo il codice oggetto in, o contenuto in, un prodotto fisico - (inclusi i mezzi fisici di distribuzione), accompagnato da un'offerta - scritta, valida per almeno tre anni e valida per tutto il tempo - durante il quale tu offri ricambi o supporto per quel modello di - prodotto, di fornire a chiunque possieda il codice oggetto (1) una - copia del Sorgente Corrispondente di tutto il software contenuto nel - prodotto che è coperto da questa Licenza, su un supporto fisico - duraturo comunemente utilizzato per lo scambio di software, ad un - prezzo non superiore al costo ragionevole per effettuare fisicamente - tale distribuzione del sorgente, oppure (2) accesso alla copia del - Sorgente Corrispondente attraverso un server di rete senza alcun costo - aggiuntivo.
  • - -
  • c) Distribuendo copie singole del codice oggetto assieme ad una copia - dell'offerta scritta di fornire il Sorgente Corrispondente. Questa - possibilità è permessa soltanto occasionalmente e per fini non - commerciali, e solo se tu hai ricevuto il codice oggetto assieme ad - una tale offerta, in accordo alla sezione 6b.
  • - -
  • d) Distribuendo il codice oggetto mediante accesso da un luogo designato - (gratis o dietro pagamento di un prezzo), e offrendo un accesso - equivalente al Sorgente Corrispondente alla stessa maniera a partire - dallo stesso luogo senza costi aggiuntivi. Non devi obbligare i - destinatari a copiare il Sorgente Corrispondente assieme al codice - oggetto. Se il luogo dal quale copiare il codice oggetto è un server - di rete, il Sorgente Corrispondente può trovarsi su un server - differente (gestito da te o da terze parti) che fornisca - funzionalità equivalenti per la copia, a patto che tu fornisca delle - indicazioni chiare accanto al codice oggetto che indichino dove - trovare il Sorgente Corrispondente. Indipendentemente da quale server - ospiti il Sorgente Corrispondente, tu rimani obbligato ad assicurare - che esso rimanga disponibile per tutto il tempo necessario a - soddisfare queste condizioni.
  • - -
  • e) Distribuendo il codice oggetto mediante trasmissione peer-to-peer, a - patto che tu informi gli altri peer circa il luogo in cui il codice - oggetto e il Sorgente Corrispondente sono gratuitamente offerti al - pubblico secondo i termini della sezione 6d.
  • -
- -

Una porzione separabile del codice oggetto, il cui sorgente è - escluso dal Sorgente Corrispondente e trattato come Libreria di - Sistema, non deve essere obbligatoriamente inclusa nella distribuzione - del codice oggetto del programma.

- -

Un “Prodotto Utente” è un (1) “prodotto consumer”, cioè - qualunque proprietà personale tangibile che è normalmente utilizzata - per scopi personali, familiari o domestici, oppure (2) qualunque cosa - progettata o venduta per essere utilizzata in ambiente domestico. Nella - classificazione di un prodotto come “prodotto consumer”, i casi dubbi - andranno risolti in favore dell'ambito di applicazione. Per un dato - prodotto ricevuto da un dato utente, “normalmente utilizzato” si - riferisce ad un uso tipico o comune di quella classe di prodotti, - indipendentemente dallo stato dell'utente specifico o dal modo in cui - l'utente specifico utilizza, o si aspetta o ci si aspetta che utilizzi, - il prodotto. Un prodotto è un “prodotto consumer” indipendentemente - dal fatto che abbia usi commerciali, industriali o diversi da quelli - “consumer”, a meno che questi usi non rappresentino il solo modo utile - di utilizzare il prodotto in questione.

- -

Le “Informazioni di Installazione” per un Prodotto Utente sono i - metodi, le procedure, le chiavi di autorizzazioni o altre informazioni - necessarie per installare ed eseguire versioni modificate di un - programma coperto da questa Licenza all'interno di un Prodotto Utente, a - partire da versioni modificate dei suoi Sorgenti Corrispondenti. Tali - informazioni devono essere sufficienti ad assicurare che il - funzionamento del codice oggetto modificato non sia in nessun caso - proibito o ostacolato per il solo fatto che sono state apportate delle - modifiche.

- -

Se distribuisci un codice oggetto secondo le condizioni di questa - sezione in, o assieme, o specificatamente per l'uso in o con un Prodotto - Utente, e la distribuzione avviene come parte di una transazione nella - quale il diritto di possesso e di uso del Prodotto Utente viene - trasferito al destinatario per sempre o per un periodo prefissato - (indipendentemente da come la transazione sia caratterizzata), il - Sorgente Corrispondente distribuito secondo le condizioni di questa - sezione deve essere accompagnato dalle Informazioni di - Installazione. Questa condizione non è richiesta se nè tu nè una - terza parte ha la possibilità di installare versioni modificate del - codice oggetto sul Prodotto Utente (ad esempio, se il programma è - installato su una ROM).

- -

La condizione che richiede di fornire delle Informazioni di Installazione - non implica che venga fornito supporto, garanzia o aggiornamenti per un - programma che è stato modificato o installato dal destinatario, o per - il Prodotto Utente in cui esso è stato modificato o installato. - L'accesso ad una rete può essere negato se le modifiche apportate - impattano materialmente sull'operatività della rete o se violano le - regole e i protocolli di comunicazione attraverso la rete.

- -

Il Sorgente Corrispondente distribuito, e le Informazioni di - Installazione fornite, in accordo con questa sezione, devono essere in - un formato che sia pubblicamente documentato (e con una implementazione - pubblicamente disponibile in formato di codice sorgente), e non devono - richiedere speciali password o chiavi per essere spacchettate, lette o - copiate.

- -

7. Condizioni Aggiuntive.

- -

Le “Condizioni Aggiuntive” sono condizioni che completano le - condizioni di questa Licenza permettendo delle eccezioni a una o più - delle condizioni sopra elencate. Le condizioni aggiuntive che sono - applicabili all'intero Programma devono essere considerate come se - fossero incluse in questa Licenza, a patto che esse siano valide secondo - le normative vigenti. Se alcune condizioni aggiuntive fanno riferimento - soltanto ad alcune parti del Programma, quelle parti possono essere - utilizzate separatamente sotto le stesse condizioni, ma l'intero - Programma rimane sottoposto a questa Licenza senza riferimento ad alcuna - condizione aggiuntiva.

- -

Quando distribuisci una copia di un programma coperto da questa Licenza, - puoi, a tua discrezione, eliminare qualunque condizione aggiuntiva dalla - copia, o da parte di essa. (Le Condizioni Aggiuntive possono essere - scritte in maniera tale da richiedere la loro rimozione in certi casi di - modifica del Programma). Puoi aggiungere Condizioni Aggiuntive su - materiale, aggiunto da te ad un'opera coperta da questa Licenza, per il - quale hai o puoi garantire un'adeguata licenza di copyright.

- -

Indipendentemente da qualunque altra condizione di questa Licenza, e per - il materiale che aggiungi ad un'opera coperta da questa Licenza, puoi - (se autorizzato dai legittimi detentori del copyright per il suddetto - materiale) aggiungere alle condizioni di questa Licenza delle condizioni - che:

- -
    -
  • a) Negano la garanzia o limitano la responsabilità del Programma in - maniera differente da quanto riportato nelle sezioni 15 e 16 di questa - Licenza; oppure
  • - -
  • b) Richiedono il mantenimento di specifiche e circostanziate informative - legali o di note di attribuzione ad autori nel materiale o assieme - alle Adeguate Informazioni Legali mostrate dal Programma che lo - contiene; oppure
  • - -
  • c) Proibiscono di fornire informazioni errate o ingannevoli sull'origine - e la provenienza del materiale in oggetto, o richiedono che versioni - modificate di tale materiale siano appositamente marcate in maniera - differente rispetto alla versione originale; oppure
  • - -
  • d) Limitano l'utilizzo per scopi pubblicitari del nome dei detentori del - copyright o degli autori del materiale; oppure
  • - -
  • e) Rifiutano di garantire diritti secondo le leggi sulla proprietà - intellettuale circa l'uso di nomi, marchi di fabbrica o similari; - oppure
  • - -
  • f) Richiedono l'indennizzo dei detentori del copyright o degli autori del - materiale in oggetto da parte di chi distribuisce il materiale (o - versioni modificate dello stesso) con impegni contrattuali circa la - responsabilità nei confronti del destinatario, per qualunque - responsabilità che questi impegni contrattuali dovessero imporre - direttamente ai suddetti detentori del copyright e autori.
  • -
- -

Tutte le altre condizioni addizionali non-permissive sono considerate - “ulteriori restrizioni”, secondo il significato specificato alla - sezione 10. Se il Programma o parti di esso contengono, all'atto della - ricezione dello stesso, informative che specificano che esso è - soggetto a questa Licenza assieme ad una condizione che è una - “ulteriore restrizione”, puoi rimuovere quest'ultima condizione. Se un - documento di licenza contiene ulteriori restrizioni ma permette di - rilicenziare o distribuire il Programma con questa Licenza, puoi - aggiungere al Programma del materiale coperto dalle condizioni di quel - documento di licenza, a patto che le ulteriori restrizioni non compaiano - nelle versioni rilicenziate o ridistribuite.

- -

Se aggiungi ad un Programma coperto da questa Licenza delle condizioni - aggiuntive in accordo con questa sezione, devi aggiungere anche, nei - file sorgenti corrispondenti, un avviso che riassuma le condizioni - aggiuntive applicate a quei file, ovvero un avviso che specifichi dove - è possibile trovare copia delle condizioni aggiunte.

- -

Tutte le Condizioni aggiuntive, permissive o non-permissive, devono - essere espresse nella forma di una licenza scritta e separata, o - espresse esplicitamente come eccezioni; in entrambi i casi valgono le - condizioni succitate.

- -

8. Cessazione di Licenza.

- -

Non puoi propagare o modificare un programma coperto da questa Licenza - in maniera diversa da quanto espressamente consentito da questa - Licenza. Qualunque tentativo di propagare o modificare altrimenti il - Programma è nullo, e provoca l'immediata cessazione dei diritti - garantiti da questa Licenza (compresi tutte le eventuali licenze di - brevetto garantite ai sensi del terzo paragrafo della sezione 11).

- -

In ogni caso, se cessano tutte le violazioni di questa Licenza, allora - la tua licenza da parte di un dato detentore del copyright viene - ripristinata (a) in via cautelativa, a meno che e fino a quando il - detentore del copyright non cessa esplicitamente e definitivamente la - tua licenza, e (b) in via permanente se il detentore del copyright non - ti notifica in alcun modo la violazione entro 60 giorni dalla cessazione - della licenza.

- -

Inoltre, la tua licenza da parte di un dato detentore del copyright - viene ripristinata in maniera permanente se il detentore del copyright ti - notifica la violazione in maniera adeguata, se questa è la prima volta - che ricevi una notifica di violazione di questa Licenza (per qualunque - Programma) dallo stesso detentore di copyright, e se rimedi alla - violazione entro 30 giorni dalla data di ricezione della notifica di - violazione.

- -

La cessazione dei tuoi diritti come specificato in questa sezione non - provoca la cessazione delle licenze di terze parti che abbiano ricevuto - copie o diritti da te secondo questa Licenza. Se i tuoi diritti cessano - e non sono ristabiliti in via permanente, non hai diritto di ricevere - nuove licenze per lo stesso materiale, secondo quanto stabilito nella - sezione 10.

- -

9. L'ottenimento di copie non richiede l'accettazione della Licenza.

- -

Non sei obbligato ad accettare i termini di questa Licenza al solo fine - di ottenere o eseguire una copia del Programma. Similmente, propagazioni - collaterali di un Programma coperto da questa Licenza che occorrono come - semplice conseguenza dell'utilizzo di trasmissioni peer-to-peer per la - ricezione di una copia non richiedono l'accettazione della Licenza. In - ogni caso, solo e soltanto questa Licenza ti garantiscono il permesso di - propagare e modificare qualunque programma coperto da questa - Licenza. Queste azioni violano le leggi sul copyright nel caso in cui tu - non accetti questa Licenza. Pertanto, modificando o propagando un - programma coperto da questa Licenza, indichi implicitamente la tua - accettazione della Licenza.

- -

10. Licenza Automatica per i successivi destinatari.

- -

Ogni qual volta distribuisci un programma coperto da questa Licenza, il - destinatario riceve automaticamente una licenza, dal detentore - originario del copyright, di eseguire, modificare e propagare il - programma, nel rispetto di questa Licenza. Non sei ritenuto responsabile - del rispetto di questa Licenza da parte di terze parti.

- -

Una “transazione d' entità” è una transazione che trasferisce il - controllo di una organizzazione, o sostanzialmente di tutti i suoi beni, - che suddivide una organizzazione o che fonde più organizzazioni. Se la - propagazione di un programma coperto da questa Licenza è conseguente - ad una transazione di entità, ciascuna parte che ha ruolo nella - transazione e che riceve una copia del programma riceve allo stesso tempo - qualsiasi licenza sul programma che i predecessori della parte - possedevano o potevano rilasciare nel rispetto del paragrafo precedente, - e in più il diritto di possesso del Sorgente Corrispondente del - programma dal predecessore in interesse, se il predecessore lo possiede - o se può ottenerlo senza troppe difficoltà.

- -

Non puoi imporre nessuna ulteriore restrizione sull'esercizio dei - diritti garantiti o affermati da questa Licenza. Per esempio, non puoi - imporre un prezzo di licenza, una royalty, o altri costi per - l'esercizio dei diritti garantiti da questa Licenza, a non puoi dar - corso ad una controversia (ivi incluse le controversie incrociate o la - difesa in cause legali) affermando che siano stati violati dei - brevetti a causa della produzione, dell'uso, della vendita, della - messa in vendita o dell'importazione del Programma o di sue parti.

- -

11. Brevetti.

- -

Un “contribuente” è un detentore di copyright che autorizza l'uso - secondo questa Licenza di un Programma o di un'opera basata sul - Programma. L'opera così licenziata viene chiamata “versione del - contribuente”.

- -

I “diritti essenziali di brevetto” da parte di un contribuente sono - tutti i diritti di brevetto che appartengono o che sono controllati dal - contribuente, che siano già acquisiti o che saranno acquisiti in - futuro, che possano essere violati in qualche maniera, consentita da - questa Licenza, generando, modificando o vendendo la versione del - contribuente, ma non includono i diritti che possano essere violati - soltanto come conseguenza di ulteriori modifiche alla versione del - contribuente. In relazione a questa definizione, il termine - “controllo” include il diritto di garantire sottolicenze di brevetto - in maniera consistente con le condizioni di questa Licenza.

- -

Ciascun contribuente ti garantisce la licenza di brevetto sui diritti - essenziali di brevetto del contribuente stesso non-esclusiva, valida in - tutto il mondo, esente da royalty, di creare, usare, vendere, offrire in - vendita, importare e altrimenti eseguire, modificare e propagare i - contenuti della versione del contribuente.

- -

Nei tre paragrafi successivi, con “licenza di brevetto” si intende - qualunque accordo o contratto, comunque denominato, di non - rivendicazione di un brevetto (come ad esempio un permesso esplicito di - utilizzare un brevetto o un accordo di rinuncia alla persecuzione per - violazione di brevetto). “Garantire” una tale licenza di brevetto ad - una parte significa portare a termine un tale accordo o contratto di non - rivendicazione di brevetto contro la parte.

- -

Se distribuisci un programma coperto da questa Licenza, confidando - consapevolmente su una licenza di brevetto, e il Sorgente Corrispondente - per il programma non è reso disponibile per la copia, senza alcun - onere aggiuntivo e comunque nel rispetto delle condizioni di questa - Licenza, attraverso un server di rete pubblicamente accessibile o - tramite altri mezzi facilmente accessibili, allora devi (1) fare in modo - che il Sorgente Corrispondente sia reso disponibile come sopra, oppure - (2) fare in modo di rinunciare ai benefici della licenza di brevetto per - quel particolare programma, oppure (3) adoperarti, in maniera - consistente con le condizioni di questa Licenza, per estendere la - licenza di brevetto a tutti i destinatari successivi. “Confidare - consapevolmente” significa che tu sei attualmente cosciente che, - eccettuata la licenza di brevetto, la distribuzione da parte tua di un - programma protetto da questa Licenza in un paese, o l'utilizzo in un - paese del programma coperto da questa Licenza da parte di un - destinatario, può violare uno o più brevetti in quel paese che tu - hai ragione di ritenere validi.

- -

Se, come conseguenza o in connessione con una singola transazione o - con un dato accordo, distribuisci, o fai in modo di distribuire, un - programma coperto da questa Licenza, e garantisci una licenza di - brevetto per alcune delle parti che ricevono il Programma - autorizzandole ad utilizzare, propagare, modificare o distribuire una - specifica copia del Programma, allora la licenza di brevetto che - fornisci è automaticamente estesa a tutti i destinatari del - Programma coperto da questa Licenza e delle opere basate sul - Programma.

- -

Una licenza di brevetto è “discriminatoria” se non include - nell'ambito della sua copertura, proibisce l'esercizio, o è vincolata - al non-esercizio di uno o più dei diritti che sono specificatamente - garantiti da questa Licenza. Non puoi distribuire un Programma coperto - da questa Licenza se sei parte di un accordo con una terza parte la cui - attività comprende la distribuzione di software, secondo il quale tu - sei costretto ad un pagamento alla parte terza in funzione della tua - attività di distribuzione del Programma, e in conseguenza del quale la - parte terza garantisce, a qualunque delle parti che riceveranno il - Programma da te, una licenza di brevetto discriminatoria (a) assieme a - copie del Programma coperto da questa Licenza distribuite da te (o ad - altre copie fatte da codeste copie), oppure (b) principalmente per e in - connessione con specifici prodotti o raccolte di prodotti che contengono - il Programma, a meno che l'accordo non sia stato stipulato, o le licenze - di brevetto non siano state rilasciate, prima del 28 Marzo 2007.

- -

Nessuna parte di questa Licenza può essere interpretata come atta ad - escludere o limitare gli effetti di qualunque altra licenza o altri - meccanismi di difesa dalla violazione che possano altrimenti essere resi - disponibili dalla normativa vigente in materia di brevetti.

- -

12. Nessuna resa di libertà altrui.

- -

Se ti vengono imposte delle condizioni (da un ordine giudiziario, da - un accordo o da qualunque altra eventualità) che contraddicono le - condizioni di questa Licenza, non sei in nessun modo esonerato dal - rispetto delle condizioni di questa Licenza. Se non puoi distribuire - un Programma coperto da questa Licenza per sottostare simultaneamente - agli obblighi derivanti da questa Licenza e ad altri obblighi - pertinenti, allora non puoi distribuire il Programma per nessun - motivo. Per esempio, se accetti delle condizioni che ti obbligano a - richiedere il pagamento di una royalty per le distribuzioni - successivamente effettuate da coloro ai quali hai distribuito il - Programma, l'unico modo per soddisfare sia queste condizioni che - questa Licenza è evitare del tutto la distribuzione del Programma.

- -

13. Utilizzo con la GNU Affero General Public License.

- -

Indipendentemente da qualunque altra condizione espressa da questa - Licenza, hai il permesso di collegare o combinare qualunque Programma - coperto da questa Licenza con un'opera rilasciata sotto la versione 3 - della licenza GNU Affero General Public License, ottenendo un singolo - Programma derivato, e di distribuire il Programma risultante. Le - condizioni di questa Licenza continuano a valere per le parti - riguardanti il Programma che sono coperte da questa Licenza, mentre le - condizioni speciali della GNU Affero General Public License, sezione 13, - riguardanti l'interazione mediante rete, saranno applicate al Programma - così risultante.

- -

14. Versioni rivedute di questa Licenza.

- -

La Free Software Foundation può pubblicare delle versioni rivedute - e/o delle nuove versioni della GNU General Public License di tanto in - tanto. Tali versioni saranno simili, nello spirito, alla presente - versione, ma potranno differire nei dettagli al fine di affrontare - nuovi problemi e nuove situazioni.

- -

A ciascuna versione viene assegnato un numero identificativo di - versione. Se il Programma specifica che si applica a sè stesso una - certa versione della GNU General Public License, “o qualunque altra - versione successiva”, hai la possibilità di sottostare alle - condizioni di quella specifica versione o di qualunque altra versione - successiva pubblicata dalla Free Software Foundation. Se il Programma - non specifica un numero di versione della GNU General Public License, - puoi scegliere qualunque versione della GNU General Public License - pubblicata dalla Free Software Foundation.

- -

Se il Programma specifica che un sostituto o un procuratore può - decidere quali versioni future della GNU General Public License posso - essere utilizzate, allora tale scelta di accettazione di una data - versione ti autorizza, in maniera permanente, ad utilizzare quella - versione della Licenza per il Programma.

- -

Versioni successive della Licenza possono garantire diritti aggiuntivi o - leggermente differenti. Ad ogni modo, nessun obbligo aggiuntivo viene - imposto agli autori o ai detentori di copyright come conseguenza della - tua scelta di adottare una versione successiva della Licenza.

- -

15. Rinuncia alla Garanzia.

- -

NON C'E' NESSUNA GARANZIA PER IL PROGRAMMA, PER QUANTO CONSENTITO DALLE - VIGENTI NORMATIVE. ECCETTO QUANDO ALTRIMENTI STABILITO PER ISCRITTO, I - DETENTORI DEL COPYRIGHT E/O LE ALTRE PARTI FORNISCONO IL PROGRAMMA - “COSI' COME È” SENZA GARANZIA DI ALCUN TIPO, NE' ESPRESSA NE' - IMPLICITA, INCLUSE, MA NON LIMITATE A, LE GARANZIE DI COMMERCIABILITA' O - DI UTILIZZABILITA' PER UN PARTICOLARE SCOPO. L'INTERO RISCHIO - CONCERNENTE LA QUALITA' E LE PRESTAZIONI DEL PROGRAMMA E' DEL - LICENZIATARIO. SE IL PROGRAMMA DOVESSE RISULTARE DIFETTOSO, IL - LICENZIATARIO SI ASSUME I COSTI DI MANUTENZIONE, RIPARAZIONE O - CORREZIONE.

- -

16. Limitazione di Responsabilità.

- -

IN NESSUN CASO, A MENO CHE NON SIA RICHIESTO DALLA NORMATIVA VIGENTE - O CONCORDATO PER ISCRITTO, I DETENTORI DEL COPYRIGHT, O QUALUNQUE - ALTRA PARTE CHE MODIICA E/O DISTRIBUISCE IL PROGRAMMA SECONDO LE - CONDIZIONI PRECEDENTI, POSSONO ESSERE RITENUTI RESPONSABILI NEI - CONFRONTI DEL LICENZIATARIO PER DANNI, INCLUSO QUALUNQUE - DANNEGGIAMENTO GENERICO, SPECIALE, INCIDENTALE O CONSEQUENZIALE - DOVUTO ALL'USO O ALL'IMPOSSIBILITA' D'USO DEL PROGRAMMA (INCLUSI, MA - NON LIMITATI A, LE PERDITE DI DATI, LA CORRUZIONE DI DATI, LE - PERDITE SOSTENUTE DAL LICENZIATARIO O DA TERZE PARTI O - L'IMPOSSIBILITA' DEL PROGRAMMA A FUNZIONARE ASSIEME AD ALTRI - PROGRAMMI), ANCHE NEL CASO IN CUI IL DETENTORE O LE ALTRE PARTI - SIANO STATI AVVISATI CIRCA LA POSSIBILITA' DI TALI DANNEGGIAMENTI.

- -

17. Interpretazione delle Sezioni 15 e 16.

- -

Se la dichiarazione di garanzia e la limitazione di responsabilità - fornite precedentemente non hanno effetto legale in un paese a causa - delle loro condizioni, le corti di giustizia devono applicare la norma - locale che più si avvicini al rifiuto assoluto di qualsivoglia - responsabilità civile relativa al Programma, a meno che una garanzia o - una assunzione di responsabilità scritta non accompagni una copia del - programma ottenuta dietro pagamento.

- -

FINE DEI TERMINI E DELLE CONDIZIONI

- -

Come applicare questre condizioni di Licenza ai vostri programmi

- -

Se sviluppi un nuovo programma, e vuoi che esso sia della massima utilità, - il modo migliore è quello di renderlo software libero, in modo che chiunque - possa ridistribuirlo e modificarlo secondo i termini di questa Licenza.

- -

Per fare ciò, allega le seguenti note informative al programma. - Il modo migliore è quello di inserirle all’inizio di ciascun file sorgente, - al fine di rimarcare adeguatamente la mancanza di garanzia; ciascun file dovrebbe inoltre contenere - la dichiarazione di copyright e un riferimento al posto in cui è possibile ottenere - la versione completa delle note informative.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Inoltre, aggiungi le informazioni necessarie a contattarti via posta ordinaria o via posta elettronica.

- -

Se il programma interagisce mediante terminale, fai in modo che visualizzi, - quando viene avviato in modalità interattiva, un breve messaggio come quello che segue:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-certain conditions; type `show c'
-for details.
- -

Gli ipotetici comandi `show w' e `show c' devono visualizzare le parti corrispondenti - della GNU General Public License. Naturalmente i comandi del tuo programma potrebbero essere differenti; - per una interfaccia di tipo GUI, dovresti usare un bottone “About” o “Info”.

- -

Devi inoltre fare in modo che il tuo datore di lavoro (se lavori come programmatore presso terzi) o la tua scuola, - eventualmente, firmino una “rinuncia al copyright” sul programma, se necessario. - Per maggiori informazioni su questo punto, e su come applicare e rispettare la GNU GPL, consultare la pagina - <http://www.gnu.org/licenses/>.

- -

La GNU General Public License non consente di incorporare il programma all’interno di software proprietario. - Se il tuo programma è una libreria di funzioni, potresti ritenere più opportuno consentire il collegamento - tra software proprietario e la tua libreria. Se è questo ciò che vuoi, allora utilizza la GNU Lesser General Public License - anziché questa Licenza, ma prima leggi - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/it/about_links_light.html b/app/src/main/assets/it/about_links.html similarity index 67% rename from app/src/main/assets/it/about_links_light.html rename to app/src/main/assets/it/about_links.html index 8756e15a..eafb239d 100644 --- a/app/src/main/assets/it/about_links_light.html +++ b/app/src/main/assets/it/about_links.html @@ -1,5 +1,5 @@ +

Collegamenti

-

+

Novità

-

Roadmap

+

Roadmap

-

+

Segnalazioni di Bug e richieste di nuove funzionalità

-

+

Forum

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/it/about_links_dark.html b/app/src/main/assets/it/about_links_dark.html deleted file mode 100644 index e9e451dd..00000000 --- a/app/src/main/assets/it/about_links_dark.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - -

Collegamenti

- -

- Novità

- -

Roadmap

- -

- Segnalazioni di Bug e richieste di nuove funzionalità

- -

- Forum

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/it/about_permissions_dark.html b/app/src/main/assets/it/about_permissions.html similarity index 90% rename from app/src/main/assets/it/about_permissions_dark.html rename to app/src/main/assets/it/about_permissions.html index df31743f..8e5289ba 100644 --- a/app/src/main/assets/it/about_permissions_dark.html +++ b/app/src/main/assets/it/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/it/about_permissions_light.html b/app/src/main/assets/it/about_permissions_light.html deleted file mode 100644 index 2e35c0a4..00000000 --- a/app/src/main/assets/it/about_permissions_light.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - -

Accesso completo alla rete

-

android.permission.INTERNET

-

E' richiesto per permettere l'accesso Internet a WebView. Senza questo permesso, Privacy Browser sarebbe “Nessun Browser: Protegge la tua Privacy restando completamente isolato da Internet”.

- - -

Creazione di collegamenti

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

E' richiesto per poter creare collegamenti a siti web sulla schermata principale del dispositivo.

- -

Lettura dalla memoria

-

android.permission.READ_EXTERNAL_STORAGE

-

Richiesta per l'importazione delle impostazioni dalle cartelle pubbliche. - A partire da Android Marshmallow (API 23), se questo permesso è negato Privacy Browser può importare le impostazioni solo dalle cartelle dell'applicazione.

- -

Scrittura della memoria

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Richiesta per l'esportazione delle applicazioni e per il download di file nelle cartelle pubbliche. - A partire da Android Marshmallow (API 23), se questo permesso è negato Privacy Browser può esportare le impostazioni e salvare i download solo nelle cartelle dell'applicazione.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/about_privacy_policy_dark.html b/app/src/main/assets/it/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/it/about_privacy_policy_dark.html rename to app/src/main/assets/it/about_privacy_policy.html index f2324c22..e99d797b 100644 --- a/app/src/main/assets/it/about_privacy_policy_dark.html +++ b/app/src/main/assets/it/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -87,6 +90,6 @@ Stoutner non rivenderà o comunque non trasferirà mai nessuna informazione a terze parti che potrebbero utilizzarle a scopi pubblicitari o di marketing.


-

Revisione 1.6, 22 Maggio 2018

+

Revisione 1.7, 14 Maggio 2019

\ No newline at end of file diff --git a/app/src/main/assets/it/about_privacy_policy_light.html b/app/src/main/assets/it/about_privacy_policy_light.html deleted file mode 100644 index d8b383f6..00000000 --- a/app/src/main/assets/it/about_privacy_policy_light.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser non raccoglie alcuna informazione dagli utenti.

- - -

Google Play

-

Google Play ha una propria privacy policy. - Google fornisce agli sviluppatori informazioni anonime sulle installazioni, incluso il numero di installazioni, secondo le seguenti categorie.

-
    -
  • Versione Android (es. Android 7.1)
  • -
  • Dispositivo (es. Samsung Galaxy S6 [zeroflte])
  • -
  • Tablet (es. Tablet 10" o superiore)
  • -
  • Nazione (es. United States)
  • -
  • Lingua (es. English [United States])
  • -
  • Versione App (es. 14)
  • -
  • Vettore (es. T-Mobile - US)
  • -
- - -

Ratings di Google Play

-

Google Play ha una propria privacy policy. - Google fornisce agli sviluppatori sintesi anonime delle seguenti informazioni collegate ai ratings degli utenti.

-
    -
  • Nazione (es. United States)
  • -
  • Lingua (es. English)
  • -
  • Versione App (es. 14)
  • -
  • Versione Android (es. Android 7.1)
  • -
  • Dispositivo (es. Google Nexus 5X [bullhead])
  • -
  • Tablet (es. Tablets 10" o superiore)
  • -
- - -

Recensioni di Google Play

-

Google Play ha una propria privacy policy. - Oltre al nome del recensore, al rating, e al testo della recensione (i quali sono tutti pubblicamente disponibili), Google fornisce alcune o tutte le seguenti informazioni allo sviluppatore.

-
    -
  • Codice Versione (es. 7)
  • -
  • Nome Versione (es. 1.6)
  • -
  • Versione Android (es. Android 5.1)
  • -
  • Dispositivo (es. Galaxy S6 Edge+ [zenlte])
  • -
  • Costruttore (es. Samsung)
  • -
  • Tipo di dispositivo (es. SmartPhone)
  • -
  • Produttore CPU (es. Samsung)
  • -
  • Modello CPU (es. Exynos 7420)
  • -
  • Risoluzione schermo (es. 560 dpi)
  • -
  • Dimensione Schermo (es. 2560 x 1440)
  • -
  • RAM (es. 4096 MB)
  • -
  • Piattaforma nativa (es. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Versione OpenGL ES (es. 3.1)
  • -
  • Lingua del dispositivo (es. English)
  • -
- - -

Comunicazioni Dirette

-

E' possibile inviare comunicazioni dirette a Stoutner, ad esempio email o commenti su stoutner.com.

- - -

Utilizzo delle informazioni

-

Stoutner si riserva l'utilizzo di queste informazioni come supporto per lo sviluppo di Privacy Browser e per comunicazioni sullo stato del progetto verso gli utenti. - Stoutner non rivenderà o comunque non trasferirà mai nessuna informazione a terze parti che potrebbero utilizzarle a scopi pubblicitari o di marketing.

- -
-

Revisione 1.6, 22 Maggio 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_domain_settings_light.html b/app/src/main/assets/it/guide_domain_settings.html similarity index 74% rename from app/src/main/assets/it/guide_domain_settings_light.html rename to app/src/main/assets/it/guide_domain_settings.html index 4beeb552..0455b8df 100644 --- a/app/src/main/assets/it/guide_domain_settings_light.html +++ b/app/src/main/assets/it/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Navigazione sicura

+

Navigazione sicura

Privacy Browser dovrebbe essere utilizzato di default per navigare con JavaScript, cookies, e DOM storage disabiltati. In ogni caso alcuni siti web necessitano legittimamente di queste funzionalità per essere visualizzati correttamente. Le impostazioni dei Domini permettono di abilitare automaticamente specifici set di funzionalità per i domini che sono stati definiti.

-

+

Quando si accede a un dominio per cui sono state specificate impostazioni personalizzate la casella di testo dell'indirizzo URL si colora di verde.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/it/guide_domain_settings_dark.html b/app/src/main/assets/it/guide_domain_settings_dark.html deleted file mode 100644 index 090101af..00000000 --- a/app/src/main/assets/it/guide_domain_settings_dark.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Navigazione sicura

- -

Privacy Browser dovrebbe essere utilizzato di default per navigare con JavaScript, cookies, e DOM storage disabiltati. - In ogni caso alcuni siti web necessitano legittimamente di queste funzionalità per essere visualizzati correttamente. - Le impostazioni dei Domini permettono di abilitare automaticamente specifici set di funzionalità per i domini che sono stati definiti.

- -

- -

Quando si accede a un dominio per cui sono state specificate impostazioni personalizzate la casella di testo dell'indirizzo URL si colora di verde.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_javascript_dark.html b/app/src/main/assets/it/guide_javascript.html similarity index 84% rename from app/src/main/assets/it/guide_javascript_dark.html rename to app/src/main/assets/it/guide_javascript.html index 6ba9e370..11b25085 100644 --- a/app/src/main/assets/it/guide_javascript_dark.html +++ b/app/src/main/assets/it/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript è potentissimo

+

JavaScript è potentissimo

Tornando ai primordi di internet, le pagine web erano statiche, ovvero contenevano testi e immagini che venivano visualizzati sullo schermo ma non potevano cambiare o interagire in nessun modo con l'utente. @@ -36,7 +39,7 @@

JavaScript è un linguaggio di programmazione. Molti siti web ospitano software scritto in JavaScript che viene inviato ai dispositivi come parte integrante della pagina web. Il dispositivo esegue localmente JavaScript e segue i comandi del programma come ad esempio l'animazione di immagini del sito web, l'apertura di popup, e molte altre cose utili.

-

JavaScript è pericoloso

+

JavaScript è pericoloso

Naturalmente il concetto stesso di eseguire arbitrariamente software proveniente da un sito web è potenzialmente molto pericoloso. Per questo motivo in JavaScript esistono limitazioni per prevenire comportamenti indesiderati come ad esempio l'installazione di virus. @@ -44,13 +47,13 @@ Di seguito si può vedere una screenshot tratta da webkay, un sito web che mostra quali siano le informazioni che JavaScript può carpire da un dispositivo. Browser Leaks è un'altra autorevole fonte di informazioni al riguardo.

-

+

Per ragioni di privacy l'ideale sarebbe navigare in internet con JavaScript disabilitato. Esistono però alcuni siti web che richiedono in modo legittimo JavaScript per funzionare correttamente e altri che non funzionano senza, anche se potrebbero essere progettati per farlo. Privacy Browser affronta questo problema facilitando l'abilitazione e la disabilitazione di JavaScript. Toccando lo scudo della privacy esso cambierà colore da blu - o giallo (entrambi indicano che JavaScript è disabilitato) a rosso - (JavaScript abilitato). + o giallo (entrambi indicano che JavaScript è disabilitato) a rosso + (JavaScript abilitato). Se si osservano le varie informazioni che webkay può raccogliere con JavaScript abilitato o disabilitato si possono scoprire cose molto interessanti.

Navigare su internet con JavaScript disabilitato, abilitandolo solo quando necessario, è quindi un passo molto importante per la protezione della propria privacy. diff --git a/app/src/main/assets/it/guide_javascript_light.html b/app/src/main/assets/it/guide_javascript_light.html deleted file mode 100644 index 074ec028..00000000 --- a/app/src/main/assets/it/guide_javascript_light.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - -

JavaScript è potentissimo

- -

Tornando ai primordi di internet, le pagine web erano statiche, - ovvero contenevano testi e immagini che venivano visualizzati sullo schermo ma non potevano cambiare o interagire in nessun modo con l'utente. - Ovviamente non può succedere nulla di particolarmente interessante con solo contenuti statici. Furono quindi sviluppate diverse tecnologie per facilitare la creazione di pagine web dinamiche. - JavaScript è una di queste.

- -

JavaScript è un linguaggio di programmazione. Molti siti web ospitano software scritto in JavaScript che viene inviato ai dispositivi come parte integrante della pagina web. - Il dispositivo esegue localmente JavaScript e segue i comandi del programma come ad esempio l'animazione di immagini del sito web, l'apertura di popup, e molte altre cose utili.

- -

JavaScript è pericoloso

- -

Naturalmente il concetto stesso di eseguire arbitrariamente software proveniente da un sito web è potenzialmente molto pericoloso. - Per questo motivo in JavaScript esistono limitazioni per prevenire comportamenti indesiderati come ad esempio l'installazione di virus. - Ad ogni modo risulta che queste limitazioni sono abbastanza permissive. - Di seguito si può vedere una screenshot tratta da webkay, un sito web che mostra quali siano le informazioni che JavaScript può carpire da un dispositivo. - Browser Leaks è un'altra autorevole fonte di informazioni al riguardo.

- -

- -

Per ragioni di privacy l'ideale sarebbe navigare in internet con JavaScript disabilitato. - Esistono però alcuni siti web che richiedono in modo legittimo JavaScript per funzionare correttamente e altri che non funzionano senza, anche se potrebbero essere progettati per farlo. - Privacy Browser affronta questo problema facilitando l'abilitazione e la disabilitazione di JavaScript. Toccando lo scudo della privacy esso cambierà colore da blu - o giallo (entrambi indicano che JavaScript è disabilitato) a rosso - (JavaScript abilitato). - Se si osservano le varie informazioni che webkay può raccogliere con JavaScript abilitato o disabilitato si possono scoprire cose molto interessanti.

- -

Navigare su internet con JavaScript disabilitato, abilitandolo solo quando necessario, è quindi un passo molto importante per la protezione della propria privacy. - Inoltre JavaScript è utilizzato anche per caricare la maggior parte degli annunci pubblicitari e altra robaccia aggiuntiva presente nei moderni siti web. - Se Javascript viene disabilitato, i siti web saranno caricati più velocemente, riducendo così il traffico sulla rete, e l'utilizzo della CPU sarà ridotto, - risultando così in una maggiore durata della batteria.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_local_storage_dark.html b/app/src/main/assets/it/guide_local_storage.html similarity index 90% rename from app/src/main/assets/it/guide_local_storage_dark.html rename to app/src/main/assets/it/guide_local_storage.html index 85dc0835..70c34366 100644 --- a/app/src/main/assets/it/guide_local_storage_dark.html +++ b/app/src/main/assets/it/guide_local_storage.html @@ -1,5 +1,5 @@ + -

Cookies proprietari

+

Cookies proprietari

I cookies proprietari sono definiti dal sito web nella barra della URL all'inizio della pagina.

@@ -44,10 +47,10 @@ Questo è il modo in cui essi sono sicuri che l'utente sia sempre lui nella navigazione da una pagina all'altra del sito, ed è, a nostro parere, uno dei pochi utilizzi legittimi dei cookies.

Se sono stati abilitati i cookies proprietari ma è stato disabilitato JavaScript, - l'icona della privacy sarà gialla con lo scopo di avvertire l'utente.

+ l'icona della privacy sarà gialla con lo scopo di avvertire l'utente.

-

Cookies di terze parti

+

Cookies di terze parti

I cookies di terze parti sono impostati da alcune porzioni dei siti web che sono caricate da server differenti rispetto alla URL all'inizio della pagina. Ad esempio, molti siti web con annunci pubblicitari caricano gli annunci da ad-broker distinti, come ad esempio Google Ad Sense. @@ -75,7 +78,7 @@ tra cookie proprietari e cookie di terze parti.. Per questo motivo l'abilitazione dei primi permette anche la creazione dei secondi.

-

DOM Storage

+

DOM Storage

Il Document Object Model storage, conosciuto anche come web storage, è come l'utilizzo di cookie potenziati. Mentre per tutti i cookie di una singola URL il massimo spazio di memoria occupata è di circa 4 kilobyte, @@ -83,7 +86,7 @@ Siccome il DOM storage utilizza JavaScript per leggere e scrivere dati, non può essere abilitato se non viene abilitato anche JavaScript.

-

Dati dei moduli

+

Dati dei moduli

I dati dei moduli contengono le informazioni che vengono digitate nei web form, come user name, indirizzi, numeri di telefono, ecc. per poterli elencare in menù a tendina in caso di visite successive. diff --git a/app/src/main/assets/it/guide_local_storage_light.html b/app/src/main/assets/it/guide_local_storage_light.html deleted file mode 100644 index a8d91078..00000000 --- a/app/src/main/assets/it/guide_local_storage_light.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - -

Cookies proprietari

- -

I cookies proprietari sono definiti dal sito web nella barra della URL all'inizio della pagina.

- -

Fin dagli albori di internet divenne ovvio che sarebbe stato molto utile per i siti web essere in grado di salvare informazioni sui computer per eventuali accessi successivi. - Ad esempio, un sito web che fornisca informazioni meteo potrebbe chiedere all'utente la sua posizione geografica e salvarla in un cookie. - Nel caso di un accesso successivo al sito web da parte dell'utente, le informazioni meteo sarebbero quindi caricate in automatico per quella posizione geografica, - senza che si renda necessario per l'utente indicarla nuovamente.

- -

Come per quasi ogni cosa sul web, persone intelligenti hanno ideato moltissimi modi per abusare dei cookies e usarli per finalità che gli utenti non approverebbero, - se solo sapessero cosa sta succedendo. Ad esempio, un sito web può salvare su un dispositivo un cookie con un numero seriale univoco. - In questo modo, ogni volta che l'utente visiterà il sito da quel dispositivo, sarà collegato ad un profilo unico mantenuto sul server per quel particolare numero seriale, - anche se il dispositivo si connette con indirizzo IP diverso.

- -

Quasi tutti i che richiedono login hanno bisogno che i cookies proprietari siano abilitati per permettere ad un utente di accedere. - Questo è il modo in cui essi sono sicuri che l'utente sia sempre lui nella navigazione da una pagina all'altra del sito, ed è, a nostro parere, uno dei pochi utilizzi legittimi dei cookies.

- -

Se sono stati abilitati i cookies proprietari ma è stato disabilitato JavaScript, - l'icona della privacy sarà gialla con lo scopo di avvertire l'utente.

- - -

Cookies di terze parti

- -

I cookies di terze parti sono impostati da alcune porzioni dei siti web che sono caricate da server differenti rispetto alla URL all'inizio della pagina. - Ad esempio, molti siti web con annunci pubblicitari caricano gli annunci da ad-broker distinti, come ad esempio Google Ad Sense. - Ogni volta che il sito viene caricato richiede all'ad-broker di mostrare un annuncio pubblicitario. - A questo punto l'ad-broker analizza tutte le informazioni possedute relative all'utente, compara le tariffe che saranno pagate dalle agenzie per i diversi annunci, - e quindi seleziona quello da mostrare. La sezione di un sito web dedicata alla visualizzazione degli annunci pubblicitari viene caricata dal server del broker invece che da quello principale.

- -

Dal momento che la maggior parte della pubblicità su internet è gestita da pochi broker, - non c'è voluto molto tempo perchè si rendessero conto di poter posizionare un cookie tracciante sui dispositivi per conoscere i luoghi in cui si trovano gli utenti. - Ogni volta che si carica un annuncio la primissima cosa che il broker fa è quella di verificare se il dispositivo ha già il suo numero seriale univoco in un cookie. - A questo punto cerca il profilo relativo a quel numero seriale e memorizza il nuovo sito. - Questo è il motivo per cui un utente può effettuare una ricerca su un sito per un prodotto che solitamente non cerca, ad esempio le noci, - e da quel momento improvvisamente inizia a vedere annunci di noci su ogni sito web visitato.

- -

Oltre agli ad-broker, anche i social media hanno scoperto come entrare in azione. - Alcuni anni fa i principali siti social come Facebook e Twitter hanno convinto un gran numero di siti web che - sarebbe stato loro molto utile inserire alcune piccole icone dei social media sulle loro pagine. Queste però non sono semplici immagini. - Esse contengono del codice incorporato che collega al sito del social media ma non solo, oltre ad altre cose, - carica un cookie di terze parti sul dispositivo. Questi cookie sono caricati anche se l'utente non possiede nemmeno un account su quel particolare social media. - Nel corso del tempo le aziende come Facebook (che gestisce anche una rete di annunci) hanno costruito un numero enorme di profili dettagliati di persone che - non hanno nemmeno mai creato un account sul loro sito.

- -

Non esiste nessuna buona ragione di abilitare i cookie di terze parti. Su dispositivi con Android KitKat o precedente (versione <= 4.4.4 o API <= 20), WebView non - fa distinzione - tra cookie proprietari e cookie di terze parti.. Per questo motivo l'abilitazione dei primi permette anche la creazione dei secondi.

- - -

DOM Storage

- -

Il Document Object Model storage, conosciuto anche come web storage, è come l'utilizzo di cookie potenziati. - Mentre per tutti i cookie di una singola URL il massimo spazio di memoria occupata è di circa 4 kilobyte, - il DOM storage può occupare alcuni megabyte per sito. - Siccome il DOM storage utilizza JavaScript per leggere e scrivere dati, non può essere abilitato se non viene abilitato anche JavaScript.

- - -

Dati dei moduli

- -

I dati dei moduli contengono le informazioni che vengono digitate nei web form, come user name, indirizzi, numeri di telefono, ecc. - per poterli elencare in menù a tendina in caso di visite successive. - A differenza delle altre modalità di memorizzazione locale delle informazioni, i dati dei moduli non vengono inviati ai web server senza una interazione con l'utente. - A partire da Android Oreo (8.0), i dati dei moduli di WebView’s sono stati sostituiti dal - Servizio di Riempimento Automatico. - Per questo motivo i controlli per i dati dei moduli non sono più disponibili nei dispositivi Android più recenti.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_overview_dark.html b/app/src/main/assets/it/guide_overview.html similarity index 83% rename from app/src/main/assets/it/guide_overview_dark.html rename to app/src/main/assets/it/guide_overview.html index 63021003..3770e54c 100644 --- a/app/src/main/assets/it/guide_overview_dark.html +++ b/app/src/main/assets/it/guide_overview.html @@ -1,5 +1,5 @@ + -

Vera Privacy

+

Vera Privacy

Privacy Browser è sviluppato con lo scopo di permettere all'utente il massimo controllo possibile della sua privacy anche durante la navigazione su internet. Quando un browser si connette a un sito web, vengono trasferiti al server alcune informazioni necessarie per facilitare la connessione. @@ -38,7 +41,7 @@ Privacy Browser è sviluppato in modo da garantire all'utente quante più informazioni e controllo possibile su queste modalitàà di tracciamento.

-

Limitazioni di WebView di Android

+

Limitazioni di WebView di Android

Privacy Browser utilizza il WebView nativo di Android per la visualizzazione dei siti web. Esistono alcune limitazioni nei controlli disponibili di WebView per la gestione delle impostazioni della privacy. diff --git a/app/src/main/assets/it/guide_overview_light.html b/app/src/main/assets/it/guide_overview_light.html deleted file mode 100644 index a0a906ed..00000000 --- a/app/src/main/assets/it/guide_overview_light.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - -

Vera Privacy

- -

Privacy Browser è sviluppato con lo scopo di permettere all'utente il massimo controllo possibile della sua privacy anche durante la navigazione su internet. - Quando un browser si connette a un sito web, vengono trasferiti al server alcune informazioni necessarie per facilitare la connessione. - Ad esempio, il server riceverà l'indirizzo IP e il numero di porta dell'utente, perchè gli sono necessari per sapere dove inviare la risposta. - Queste informazioni spesso vengono memorizzate dal server, - per permettere allo sviluppatore del sito web di avere report che indichino quanto spesso una pagina viene visualizzata e quanto accedono indirizzi IP diversi.

- -

In ogni caso molti gestori di siti web vogliono molte più informazioni sui visitatori dei siti, compreso il tracciamento della navigazione anche su siti web multipli. - Esistono molte tecniche differenti che permettono il tracciamento, ad esempio la richiesta o il caricamento di informazioni addizionali sul dispositivo dell'utente. - Praticamente tutti i browser partecipano involontariamente al tracciamento all'insaputa dell'utente. - Privacy Browser è sviluppato in modo da garantire all'utente quante più informazioni e controllo possibile su queste modalitàà di tracciamento.

- - -

Limitazioni di WebView di Android

- -

Privacy Browser utilizza il WebView nativo di Android per la visualizzazione dei siti web. - Esistono alcune limitazioni nei controlli disponibili di WebView per la gestione delle impostazioni della privacy. - Ad esempio non è possibile abilitare alcuni comandi JavaScript disabilitandone altri. - In futuro Privacy Browser sarà dotato di una WebView personalizzata denominata Privacy WebView.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_proxies_dark.html b/app/src/main/assets/it/guide_proxies.html similarity index 90% rename from app/src/main/assets/it/guide_proxies_dark.html rename to app/src/main/assets/it/guide_proxies.html index 6a475bc5..bb5e0160 100644 --- a/app/src/main/assets/it/guide_proxies_dark.html +++ b/app/src/main/assets/it/guide_proxies.html @@ -22,11 +22,14 @@ - + + + + -

I Proxy e i loro limiti

+

I Proxy e i loro limiti

Esistono due categorie generali di cattivi soggetti che vogliono violare la privacy del web: governi maliziosi con accesso agli ISP (Internet Service Providers) e mega corporations che gestiscono social network e agenzie pubblicitarie. @@ -34,7 +37,7 @@ ma non dalle mega corporations (che inseriscono codice malizioso sui web server).

-

Governi Maliziosi

+

Governi Maliziosi

I governi malizionsi spesso spiano i loro cittadini per punire il dissenso o le attività di difesa dei diritti umani. Solitamente, o gestiscono loro stessi gli ISP locali oppure li obbligano a rivelare informazioni mostrando tutti gli indirizzi IP visitati da ciascun utente. @@ -48,7 +51,7 @@ Per questo motivo i proxy possono essere utili ma non sono la soluzione di tutti i mali.

-

Mega corporations

+

Mega corporations

Quando un utente si connette a un web server, il server può vedere l'indirizzo IP dell'utente. Nonostante non sia una scienza esatta, è possibile convertire l'IP in indirizzi fisici con discreta accuratezza. @@ -69,7 +72,7 @@ disabilitare i cookie e il DOM storage, e utilizzare un browser di cui è difficile avere l'impronta digitale.

-

L'utilizzo di Proxy

+

L'utilizzo di Proxy

Nonostante i loro limiti, i proxy possono essere utili in alcune circostanze. Tor e I2P diff --git a/app/src/main/assets/it/guide_proxies_light.html b/app/src/main/assets/it/guide_proxies_light.html deleted file mode 100644 index dbf3cfa6..00000000 --- a/app/src/main/assets/it/guide_proxies_light.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - -

I Proxy e i loro limiti

- -

Esistono due categorie generali di cattivi soggetti che vogliono violare la privacy del web: - governi maliziosi con accesso agli ISP (Internet Service Providers) e mega corporations che gestiscono social network e agenzie pubblicitarie. - Proxy come TOR (The Onion Router) e I2P (Invisible Internet Project) sono utili per la protezione della privacy da governi maliziosi (che spiano il traffico in transito) - ma non dalle mega corporations (che inseriscono codice malizioso sui web server).

- - -

Governi Maliziosi

- -

I governi malizionsi spesso spiano i loro cittadini per punire il dissenso o le attività di difesa dei diritti umani. - Solitamente, o gestiscono loro stessi gli ISP locali oppure li obbligano a rivelare informazioni mostrando tutti gli indirizzi IP visitati da ciascun utente. - I proxy a strati sono progettati per sconfiggere questa violazione di privacy crittografando il traffico dal dispositivo dell'utente e instradandolo attraverso server multipli su internet - prima di inviarlo alla destinazione finale. - Questo significa che nessun ISP individuale, server, o sito web, - può conoscere sia l'indirizzo IP del dispositivo dell'utente che l'indirizzo IP del web server finale. - I governi maliziosi e gli ISP che controllano, non possono conoscere i web server ai quali l'utente sta accedendo, sebbene sappiano che l'utente sta utilizzando un servizio di proxy a strati. - In alcune parti del mondo l'utilizzo di proxy può essere consideraro come evidenza di un comportamento illegale (“Se non hai nulla da nascondere non crittograferesti il tuo traffico”) - e gli utenti potrebbero essere perseguiti perchè il loro governo potrebbe assumere che stiano facendo qualcosa di proibito. - Per questo motivo i proxy possono essere utili ma non sono la soluzione di tutti i mali.

- - -

Mega corporations

- -

Quando un utente si connette a un web server, il server può vedere l'indirizzo IP dell'utente. - Nonostante non sia una scienza esatta, è possibile convertire l'IP in indirizzi fisici con discreta accuratezza. - I piccoli web servers solitamente si basano sull'indirizzo IP per identificare la posizione degli utenti che accedono al loro sito. - I Proxy sono una buona soluzione per mascherare la posizione dell'utente a questi server. - Le mega corporations proprietarie di social media e agenzie pubblicitarie utilizzano però un intero profilo di informazioni con lo scopo di tracciare gli utenti sui dispositivi e sgli indirizzi IP. - Questi profili utilizzano molte tecniche diverse per l'identificazione degli utenti, tra cui JavaScript, cookie, ID traccianti, - e impronta digitale dei browser. - Siccome la maggior parte dei siti web carica gli annunci da una delle principali agenzie o inserisce le icone dei social media e i relativi javascript, - costruiscono profili per quasi tutti gli utenti e possono tracciare la loro attività su internet anche se relativa a altri siti.

- -

Viene tracciato ogni sito visitato, ogni acquisto effettuato, ogni carta di credito utilizzata, ogni indirizzo di spedizione, i metadati GPS di ogni immagine che viene caricata su internet. - Viene costruito il profilo per età, sesso, stato civile, indirizzo, appartenenza politica, religione, situazione familiare, animali domestici, e tutto ciò su cui possono mettere le mani. - Le corporations acquistano anche i database delle transazioni con carta di credito effettuate nei negozi, per poter tracciare anche le abitudini di acquisto off-line degli utenti nei loro profili. - Poichè hanno già informazioni molto più accurate sull'utente rispetto a quelle fornite dall'indirizzo IP, i proxy non forniscono alcuna vera protezione della privacy contro le mega corporations.

- -

La miglior protezione per la privacy contro le mega corporations è quella di navigare con JavaScript disabilitato, seguita dal bloccare gli annunci pubblicitari, - disabilitare i cookie e il DOM storage, e utilizzare un browser di cui è difficile avere l'impronta digitale.

- - -

L'utilizzo di Proxy

- -

Nonostante i loro limiti, i proxy possono essere utili in alcune circostanze. - Tor e I2P - hanno app per Android che facilitano l'utilizzo delle loro reti proxy. - Quando si abilita il proxy in Privacy Browser la barra dell'app bar avrà una colorazione dello sfondo azzurra, rispetto a quella grigia di default. - Dal momento che il traffico è instradato attraverso diversi nodi proxy, l'utilizzo di un proxy a strati è spesso molto più lento di una connessione diretta a internet.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_requests_light.html b/app/src/main/assets/it/guide_requests.html similarity index 92% rename from app/src/main/assets/it/guide_requests_light.html rename to app/src/main/assets/it/guide_requests.html index b0f63c40..a4cc9978 100644 --- a/app/src/main/assets/it/guide_requests_light.html +++ b/app/src/main/assets/it/guide_requests.html @@ -1,5 +1,5 @@ + -

Richieste di Risorse

+

Richieste di Risorse

Quando viene caricata un URL, generalmente effettua un certo numero di richieste di risorse per CCS, JavaScript, immagini, e altri files. I dettagli relativi a queste richieste possono essere visualizzati nella scheda delle Richieste. Il menù a cassetto ha un collegamento alla scheda delle richieste e mostra quante sono state bloccate. Se si tocca una delle richieste in elenco vengono mostrati i dettagli sui motivi per cui è stata permessa o bloccata.

-

+

Privacy Browser include quattro liste di blocco comuni basate sulla Sintassi di Adblock: EasyList, EasyPrivacy, Fanboy’s Annoyance List, e Fanboy’s Social Blocking List. diff --git a/app/src/main/assets/it/guide_requests_dark.html b/app/src/main/assets/it/guide_requests_dark.html deleted file mode 100644 index 84b6338b..00000000 --- a/app/src/main/assets/it/guide_requests_dark.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - -

Richieste di Risorse

- -

Quando viene caricata un URL, generalmente effettua un certo numero di richieste di risorse per CCS, JavaScript, immagini, e altri files. - I dettagli relativi a queste richieste possono essere visualizzati nella scheda delle Richieste. - Il menù a cassetto ha un collegamento alla scheda delle richieste e mostra quante sono state bloccate. - Se si tocca una delle richieste in elenco vengono mostrati i dettagli sui motivi per cui è stata permessa o bloccata.

- -

- -

Privacy Browser include quattro liste di blocco comuni basate sulla Sintassi di Adblock: - EasyList, EasyPrivacy, Fanboy’s Annoyance List, e Fanboy’s Social Blocking List. - Queste blocklist sono processate da Privacy Browser nelle seguenti 22 liste secondarie, che verificano le richieste di risorse nell'ordine elencato.

- -
    -
  1. Whitelist principale
  2. -
  3. Whitelist finale
  4. -
  5. Whitelist per i domini
  6. -
  7. Whitelist iniziale
  8. -
  9. Whitelist finale
  10. -
  11. Whitelist di terze parti
  12. -
  13. Whitelist di terze parti per i domini
  14. -
  15. Whitelist di terze parti iniziale per i domini
  16. -
  17. Blacklist principale
  18. -
  19. Blacklist iniziale
  20. -
  21. Blacklist finale
  22. -
  23. Blacklist per i domini
  24. -
  25. Blacklist iniziale
  26. -
  27. Blacklist finale
  28. -
  29. Blacklist per le espressioni regolari
  30. -
  31. Blacklist di terze parti
  32. -
  33. Blacklist di terze parti iniziale
  34. -
  35. Blacklist di terze parti per i domini
  36. -
  37. Blacklist di terze parti iniziale per i domini
  38. -
  39. Blacklist di terze parti per le espressioni regolari
  40. -
  41. Blacklist di terze parti per le espressioni regolari per i domini
  42. -
  43. Blacklist per le espressioni regolari
  44. -
- -

Le liste iniziali servono per la verifica della parte iniziale delle URL. Le liste iniziali servono per la verifica della parte finale delle URL. - Le liste dei domini servono per la verifica di certi domini. Le liste di terze parti si applicano solo se il dominio di root della richiesta è diverso dal dominio di root della URL principale. - Le liste per le espressioni regolari seguono la sintassi delle espressioni regolari. - Ogni oggetto delle liste secondarie ha uno o più elementi. - Nel caso delle liste secondarie dei domini, la richiesta di risorse è verificata solo se il primo elemento combacia con il dominio della URL principale.

- -

A causa delle limitazioni della WebView di Android, e per velocizzare il processo delle richiesta, Privacy Browser implementa una versione semplificata della sintassi di Adblock. - Questo approccio potrebbe a volte portare ad avere falsi positivi, nel caso in cui le risorse siano bloccate o permesse in modi che non erano previsti dall'elemento originale. - Una descrizione più dettagliata su come sono processati gli elementi delle liste di blocco è disponibile su stoutner.com.

- -

Privacy Browser ha tre liste di blocco aggiuntive. - UltraList e UltraPrivacy - bloccano gli annunci e i sistemi di tracciamento che EasyList e EasyPrivacy non bloccano. La terza blocca tutte le richieste di terze parti. - Una richiesta è considerata di terze parti solo se il dominio di base della richiesta è diverso dal dominio di base della URL. - Ad esempio se www.website.com carica un'immagine da images.website.com, - questa non è bloccata come richiesta di terze parti, perchè il dominio di base è lo stesso: website.com. - Il blocco di tutte le richieste di terze parti aumenta la privacy, ma questa lista di blocco è disabilitata di default perchè impedisce la corretta visualizzazione di un gran numero di siti web.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_ssl_certificates_dark.html b/app/src/main/assets/it/guide_ssl_certificates.html similarity index 85% rename from app/src/main/assets/it/guide_ssl_certificates_dark.html rename to app/src/main/assets/it/guide_ssl_certificates.html index c668f1ce..f3879a78 100644 --- a/app/src/main/assets/it/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/it/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Connettiti in sicurezza

+

Connettiti in sicurezza

Quando si accede ad una URL criptata (quelle che iniziano con HTTPS), il server web utilizza un certificato SSL con lo scopo di criptare le informazioni inviate al browser e di identificare il server stesso. @@ -40,14 +43,14 @@

Lo scopo di appuntare un certificato SSL è quello di dire al browser che solo un determinato certificato SSL è fidato per un particolare dominio. Qualsiasi altro certificato, per quanto valido, sarà rifiutato.

-

+

I certificati SSL scadono in corrispondenza di una data specifica, così anche i certificati che sono stati appuntati dovranno essere aggiornati regolarmente. Come regola generale, nella maggioranza dei casi, appuntare un certificato SSL non dovrebbe essere necessario. Per coloro che sospettano però di essere sorvegliati da qualche organizzazione, appuntare il certificato SSL può permettere di scoprire e sventare un attacco "MITM". Privacy Browser permette anche di appuntare gli indirizzi IP.

-

+

I certificati SSL possono essere appuntati nelle impostazioni dei domini. Oltre a proteggere dagli attacchi “MITM”, diff --git a/app/src/main/assets/it/guide_ssl_certificates_light.html b/app/src/main/assets/it/guide_ssl_certificates_light.html deleted file mode 100644 index ce2cbaf4..00000000 --- a/app/src/main/assets/it/guide_ssl_certificates_light.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - -

Connettiti in sicurezza

- -

Quando si accede ad una URL criptata (quelle che iniziano con HTTPS), - il server web utilizza un certificato SSL con lo scopo di criptare le informazioni inviate al browser e di identificare il server stesso. - Lo scopo di questa identificazione è quello di impedire che una macchina situata tra il browser e il server web tenti di decriptare le informazioni in transito. - Questo tipo di attacco è conosciuto come attacco “Man In The Middle (MITM)”. - I certificati SSL sono generati dalle autorità di certificazione: sono aziende che verificano l'identità dei server e producono il certificato (a pagamento). - Android ha una lista di autorità di certificazione fidate, e pertanto accetterà qualsiasi loro certificato fornito dai siti web. - Non dovrebbe essere possibile che una organizzazione qualsiasi possa acquisire un certificato SSL per un dominio che non sia sotto il proprio controllo, - ma in pratica alcuni governi e grosse multinazionali sono in grado di farlo.

- -

Lo scopo di appuntare un certificato SSL è quello di dire al browser che solo un determinato certificato SSL è fidato per un particolare dominio. - Qualsiasi altro certificato, per quanto valido, sarà rifiutato.

- -

- -

I certificati SSL scadono in corrispondenza di una data specifica, così anche i certificati che sono stati appuntati dovranno essere aggiornati regolarmente. - Come regola generale, nella maggioranza dei casi, appuntare un certificato SSL non dovrebbe essere necessario. - Per coloro che sospettano però di essere sorvegliati da qualche organizzazione, appuntare il certificato SSL può permettere di scoprire e sventare un attacco "MITM". - Privacy Browser permette anche di appuntare gli indirizzi IP.

- -

- -

I certificati SSL possono essere appuntati nelle impostazioni dei domini. - Oltre a proteggere dagli attacchi “MITM”, - appuntare un certificato auto-firmato per un dispositivo come un router wireless o un access point eliminerà il messaggio di errore che si presenta ogni volta che viene caricato un sito web. - Il tocco della scheda attiva mostra il certificato SSL attuale del sito.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_tracking_ids_light.html b/app/src/main/assets/it/guide_tracking_ids.html similarity index 79% rename from app/src/main/assets/it/guide_tracking_ids_light.html rename to app/src/main/assets/it/guide_tracking_ids.html index 9a3b6cab..5adbaf97 100644 --- a/app/src/main/assets/it/guide_tracking_ids_light.html +++ b/app/src/main/assets/it/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Do Not Track

+

Do Not Track

Alcuni anni fa il W3C (World Wide Web Consortium) ha creato per i browser un meccanismo per informare i web server che preferiscono non essere tracciati. Questo è ottenuto attraverso l'inclusione nella richiesta al server di un header denominato: DNT (Do Not Track).

@@ -35,7 +38,7 @@ che ignorano tutti almeno alcuni degli header DNT.

-

Modifica delle URL

+

Modifica delle URL

Privacy Browser rimuove le sezioni traccianti delle URL, come ad esempio ?utm_ di Google Analytics e ?fbclick= di Facebook. La modifica delle URL può essere disattivata nelle opzioni nel caso in cui crei problemi.

diff --git a/app/src/main/assets/it/guide_tracking_ids_dark.html b/app/src/main/assets/it/guide_tracking_ids_dark.html deleted file mode 100644 index 96319584..00000000 --- a/app/src/main/assets/it/guide_tracking_ids_dark.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - -

Do Not Track

- -

Alcuni anni fa il W3C (World Wide Web Consortium) ha creato per i browser un meccanismo per informare i web server che preferiscono non essere tracciati. - Questo è ottenuto attraverso l'inclusione nella richiesta al server di un header denominato: DNT (Do Not Track).

- -

L'header DNT in realtà non garantisce nessuna privacy dal momento che la maggior parte dei web server lo ignora, come ad esempio Yahoo, Google, Microsoft e Facebook, - che ignorano tutti almeno alcuni degli header DNT.

- - -

Modifica delle URL

- -

Privacy Browser rimuove le sezioni traccianti delle URL, come ad esempio ?utm_ di Google Analytics e - ?fbclick= di Facebook. La modifica delle URL può essere disattivata nelle opzioni nel caso in cui crei problemi.

- - \ No newline at end of file diff --git a/app/src/main/assets/it/guide_user_agent_dark.html b/app/src/main/assets/it/guide_user_agent.html similarity index 91% rename from app/src/main/assets/it/guide_user_agent_dark.html rename to app/src/main/assets/it/guide_user_agent.html index fe8f3d62..223125d5 100644 --- a/app/src/main/assets/it/guide_user_agent_dark.html +++ b/app/src/main/assets/it/guide_user_agent.html @@ -22,11 +22,14 @@ - + + + + -

Identificazione del Browser

+

Identificazione del Browser

Nel momento in cui un browser si connette ai siti web, invia uno user agent che identifica il browser e le sue caratteristiche di rendering. Il web server può utilizzare tali informazioni per decidere quale versione del sito inviare al browser. @@ -40,7 +43,7 @@ Lo screenshot sottostante mostra un Pixel 2 XL con Android 10 con installato Android System WebView 84.0.4147.125. La maggior parte dei web server lo riconoscerà come browser mobile e invierà la versione mobile del sito, se disponibile.

- +

Nello user agent sono presenti informazioni sufficienti a far sì che solo di tanto in tanto a un sito web risulteranno visitatori identici. Se allo user agent viene aggiunto qualche altro pezzetto di informazione anche non univoca, spesso il risultato sarà quello di avere una impronta digitale unica. @@ -48,7 +51,7 @@ Se si esegue questo test con JavaScript abilitato la quantità di informazioni è poi ancora maggiore. Browser Leaks e Am I Unique possono fornire ulteriori interessanti informazioni al riguardo.

- +

Sono disponibili diversi user agent predefiniti che identificano i browser e i sistemi operativi più comuni. Dal punto di vista dell'impronta digitale del browser, più è rara, più è facile da tracciare. diff --git a/app/src/main/assets/it/guide_user_agent_light.html b/app/src/main/assets/it/guide_user_agent_light.html deleted file mode 100644 index 27497380..00000000 --- a/app/src/main/assets/it/guide_user_agent_light.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - -

Identificazione del Browser

- -

Nel momento in cui un browser si connette ai siti web, invia uno user agent che identifica il browser e le sue caratteristiche di rendering. - Il web server può utilizzare tali informazioni per decidere quale versione del sito inviare al browser. - Molti siti web infatti sono disponibili in versioni diverse a seconda che vi si acceda con browser da PC (desktop) o da dispositivo mobile.

- -

Per default Privacy Browser utilizza un proprio user agent (o identificazione), ovvero PrivacyBrowser/1.0. Questo invia un set minimo di informazioni al web server. - Dal momento che i web server non lo riconoscono come uno user agent di un dispositivo mobile, generalmente inviano la versione desktop del sito.

- -

In confronto, lo user agent di default di WebView invia una grande quantità di informazioni sull'hardware e sul software del dispositivo. - Sulla schermata Settings, selezionando WebView Default come User agent viene mostrato lo user agent che sarà inviato al web server. - Lo screenshot sottostante mostra un Pixel 2 XL con Android 10 con installato Android System WebView 84.0.4147.125. - La maggior parte dei web server lo riconoscerà come browser mobile e invierà la versione mobile del sito, se disponibile.

- - - -

Nello user agent sono presenti informazioni sufficienti a far sì che solo di tanto in tanto a un sito web risulteranno visitatori identici. - Se allo user agent viene aggiunto qualche altro pezzetto di informazione anche non univoca, spesso il risultato sarà quello di avere una impronta digitale unica. - La Electronic Frontier Foundation ha creato un tool dal nome Panopticlick per dimostrare quante informazioni possono essere raccolte. - Se si esegue questo test con JavaScript abilitato la quantità di informazioni è poi ancora maggiore. - Browser Leaks e Am I Unique possono fornire ulteriori interessanti informazioni al riguardo.

- - - -

Sono disponibili diversi user agent predefiniti che identificano i browser e i sistemi operativi più comuni. - Dal punto di vista dell'impronta digitale del browser, più è rara, più è facile da tracciare. - Nel caso in cui Privacy Browser diventi di uso comune, e molti utenti utilizzino PrivacyBrowser/1.0 come user agent, sarà una buona scelta dal punto di vista della privacy. - Firefox o Chrome sono gli user agents più comuni, ma vengono aggiornati spesso e il loro numero di versione cambia così di frequente che lo user agent incluso in Privacy Browser molto facilmente - sarà rimasto indietro rispetto alla maggior parte degli user agent tracciati nei log dei server.

- -

Alcuni siti web non funzionano correttamente se non riconoscono lo User Agent. - L'utilizzo delle impostazioni dei domini per impostare come User Agent WebView Default, oppure un altro che sia riconosciuto comunemente generalmente risolve il problema. - WebView di Android non permette che lo user agent non sia specificato. In tal caso infatti, WebView invia al server lo user agent di default.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/about_changelog_dark.html b/app/src/main/assets/ru/about_changelog.html similarity index 99% rename from app/src/main/assets/ru/about_changelog_dark.html rename to app/src/main/assets/ru/about_changelog.html index 903566d2..c4918905 100644 --- a/app/src/main/assets/ru/about_changelog_dark.html +++ b/app/src/main/assets/ru/about_changelog.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/main/assets/ru/about_changelog_light.html b/app/src/main/assets/ru/about_changelog_light.html deleted file mode 100644 index d3736fbd..00000000 --- a/app/src/main/assets/ru/about_changelog_light.html +++ /dev/null @@ -1,684 +0,0 @@ - - - - - - - - - - -

3.5.1 (код версии 51)

-

28 августа 2020 года - минимальный API 19, целевой API 29

-
    -
  • Исправлена ошибка, из-за которой новые запросы (ссылки из других приложений) не загружалис, - если Privacy Browser был остановлен операционной системой в фоновом режиме.
  • -
  • Исправлена ошибка, из-за которой приложение инициализировалось неправильно, - если тема приложения была установлена в противоположность теме ОС.
  • -
- -

3.5 (код версии 50)

-

18 августа 2020 года - минимальный API 19, целевой API 29

- - -

3.4.1 (код версии 49)

-

1 апреля 2020 года - минимальный API 19, целевой API 29

- - -

3.4 (код версии 48)

-

28 марта 2020 года - минимальный API 19, целевой API 29

- - -

3.3 (код версии 47)

-

3 января 2020 года - минимальный API 19, целевой API 29

- - -

3.2 (код версии 46)

-

20 июля 2019 года - минимальный API 19, целевой API 28

- - -

3.1 (код версии 45)

-

27 мая 2019 года - минимальный API 19, целевой API 28

- - -

3.0.1 (код версии 44)

-

2 мая 2019 года - минимальный API 19, целевой API 28

- - -

3.0 (код версии 43)

-

26 апреля 2019 года - минимальный API 19, целевой API 28

-
    -
  • Теперь сайты можно открывать в нескольких вкладках.
  • -
  • Исправлена ошибка, приводившая к обрезанию нижней части WebView при отключенной прокрутке панели приложения.
  • -
  • Исправлена ​​ошибка, приводившая к перезапуску Privacy Browser при подключении/отключении Bluetooth-клавиатуры.
  • -
  • Обновлен перевод на русский язык.
  • -
  • Обновлен перевод на немецкий язык, выполненный Бернхардом Г. Келлером (Bernhard G. Keller).
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
  • Добавлен частичный перевод на турецкий язык.
  • -
- -

2.17.1 (код версии 42)

-

5 марта 2019 года - минимальный API 19, целевой API 28

- - -

2.17 (код версии 41)

-

27 февраля 2019 года - минимальный API 19, целевой API 28

- - -

2.16 (код версии 40)

-

31 января 2019 года - минимальный API 19, целевой API 28

- - -

2.15.1 (код версии 39)

-

27 декабря 2018 года - минимальный API 19, целевой API 28

- - -

2.15 (код версии 38)

-

24 декабря 2018 года - минимальный API 19, целевой API 28

- - -

2.14 (код версии 37)

-

8 декабря 2018 года - минимальный API 19, целевой API 28

- - -

2.13 (код версии 36)

-

29 октября 2018 года - минимальный API 19, целевой API 28

- - -

2.12 (код версии 35)

-

31 июля 2018 года - минимальный API 19, целевой API 27

-
    -
  • Домашняя страница и поисковая система по умолчанию изменены на Searx.me.
  • -
  • В списки блокировок добавлен UltraPrivacy.
  • -
  • Добавлена опция блокировки всех сторонних ресурсов.
  • -
  • В опции меню добавлено управление списками блокировок.
  • -
  • В руководство добавлен раздел описывающий активность запросов.
  • -
  • Исправлена ошибка вызывающая сообщение “Ожидание Orbot”.
  • -
  • Исправлено две ошибки при обработке списка блокировок.
  • -
  • Исправлено две проблемы связанные с полноэкранным отображением.
  • -
  • Обновлен перевод на русский язык.
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

2.11 (код версии 34)

-

10 июля 2018 года - минимальный API 19, целевой API 27

- - -

2.10 (код версии 33)

-

24 мая 2018 года - минимальный API 19, целевой API 27

- - -

2.9 (код версии 32)

-

9 мая 2018 года - минимальный API 19, целевой API 27

- - -

2.8.1 (код версии 31)

-

1 марта 2018 года - минимальный API 19, целевой API 27

- - -

2.8 (код версии 30)

-

22 февраля 2018 года - минимальный API 19, целевой API 27

- - -

2.7.2 (код версии 29)

-

22 November 2017 года - минимальный API 19, целевой API 26

-
    -
  • Add an options menu item to create/edit domain settings for the current domain.
  • -
  • Open telephone number hyperlinks in the dialer.
  • -
  • Fix a build error that prevented the release of 2.7 and 2.7.1 on F-Droid.
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

2.7.1 (код версии 28)

-

9 November 2017 года - минимальный API 19, целевой API 26

- - -

2.7 (код версии 27)

-

7 November 2017 года - минимальный API 19, целевой API 26

-
    -
  • Add a bookmarks drawer that is accessed by sliding from the right.
  • -
  • Prevent Night Mode from flashing a white background when loading new pages.
  • -
  • Update the user agents.
  • -
  • Bump target API to 26 (Android Oreo, 8.0.0).
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

2.6 (код версии 26)

-

18 September 2017 года - минимальный API 19, целевой API 25

-
    -
  • Add night mode rendering.
  • -
  • Update the dark theme rendering of the About and Guide sections.
  • -
  • Add support for HTTP authentication.
  • -
  • Color code the Common Name in the view SSL certificate dialog.
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

2.5 (код версии 25)

-

26 августа 2017 года - минимальный API 19, целевой API 25

- - -

2.4 (код версии 24)

-

23 June 2017 года - минимальный API 19, целевой API 25

- - -

2.3 (код версии 23)

-

26 мая 2017 года - минимальный API 19, целевой API 25

-
    -
  • Don’t include URL redirects in the WebView history.
  • -
  • Add the option to disable loading of images to conserve bandwidth.
  • -
  • Fix the layout of some web pages by using a wide viewport.
  • -
  • Allow loading of host only URLs.
  • -
  • Add icons to the settings screen.
  • -
  • Add the title to the URL when sharing through the options menu.
  • -
  • Disable the third-party cookies setting on KitKat because it only works on Lollipop or newer.
  • -
  • Move Refresh to the bottom of the options menu.
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

2.2 (код версии 22)

-

27 апреля 2017 года - минимальный API 19, целевой API 25

- - -

2.1 (код версии 21)

-

25 марта 2017 года - минимальный API 19, целевой API 25

- - -

2.0.1 (код версии 20)

-

21 марта 2017 года - минимальный API 19, целевой API 25

- - -

2.0 (код версии 19)

-

16 марта 2017 года - минимальный API 19, целевой API 25

-
    -
  • Implement custom domain settings.
  • -
  • When proxying through Tor, wait until Orbot is ready before attempting to load a page.
  • -
  • Use .onion search engines when proxying through Tor.
  • -
  • Обновлен перевод на итальянский язык, выполненный Франческо Буратти (Francesco Buratti).
  • -
  • Обновлен перевод на испанский язык, выполненный Хосе А. Леон (Jose A. León).
  • -
- -

1.15 (код версии 18)

-

11 февраля 2017 года - минимальный API 19, целевой API 25

- - -

1.14.1 (код версии 17)

-

4 января 2017 года - минимальный API 19, целевой API 25

- - -

1.14 (код версии 16)

-

26 декабря 2016 года - минимальный API 19, целевой API 25

- - -

1.13 (код версии 15)

-

28 November 2016 года - минимальный API 19, целевой API 24

- - -

1.12 (код версии 14)

-

9 November 2016 года - минимальный API 19, целевой API 24

- - -

1.11 (код версии 13)

-

22 октября 2016 года - минимальный API 19, целевой API 24

- - -

1.10 (код версии 12)

-

15 September 2016 года - минимальный API 19, целевой API 23

- - -

1.9.1 (код версии 11)

-

27 августа 2016 года - минимальный API 19, целевой API 23

-
    -
  • Changed asset image links to relative paths so Privacy Browser will build on F-Droid.
  • -
- -

1.9 (код версии 10)

-

26 августа 2016 года - минимальный API 19, целевой API 23

- - -

1.8 (код версии 9)

-

16 июля 2016 года - минимальный API 19, целевой API 23

- - -

1.7 (код версии 8)

-

16 June 2016 года - минимальный API 19, целевой API 23

- - -

1.6 (код версии 7)

-

11 мая 2016 года - минимальный API 15, целевой API 23

- - -

1.5 (код версии 6)

-

5 мая 2016 года - минимальный API 15, целевой API 23

-
    -
  • Add the option to disable swipe to refresh so that certain websites, like Google Maps, will function correctly.
  • -
- -

1.4 (код версии 5)

-

28 апреля 2016 года - минимальный API 15, целевой API 23

- - -

1.3 (код версии 4)

-

7 апреля 2016 года - минимальный API 15, целевой API 23

- - -

1.2 (код версии 3)

-

23 марта 2016 года - минимальный API 15, целевой API 23

- - -

1.1 (код версии 2)

-

9 марта 2016 года - минимальный API 10, целевой API 23

-
    -
  • Separate the standard and the free flavors so that Privacy Browser builds correctly on F-Droid.
  • -
- -

1.0 (код версии 1)

-

24 февраля 2016 года - минимальный API 10, целевой API 23

-
    -
  • Toggle JavaScript, DOM storage, and cookies.
  • -
  • Set default enabled status for JavaScript, DOM storage, and cookies.
  • -
  • Clear DOM storage and cookies.
  • -
  • Add shortcuts to the home screen.
  • -
  • Utilize download manager.
  • -
  • Navigate forward and back.
  • -
  • Cut, copy, paste URLs.
  • -
  • Share URLs.
  • -
  • Set homepage.
  • -
  • Scroll URL bar.
  • -
  • Maintain WebView scroll location when rotating screen.
  • -
  • Swipe to refresh WebView.
  • -
  • Play full screen videos (requires JavaScript to be enabled).
  • -
  • Clear and Exit menu item.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/ru/about_contributors_dark.html b/app/src/main/assets/ru/about_contributors.html similarity index 90% rename from app/src/main/assets/ru/about_contributors_dark.html rename to app/src/main/assets/ru/about_contributors.html index d5ab899e..809df9f1 100644 --- a/app/src/main/assets/ru/about_contributors_dark.html +++ b/app/src/main/assets/ru/about_contributors.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/main/assets/ru/about_contributors_light.html b/app/src/main/assets/ru/about_contributors_light.html deleted file mode 100644 index 1ab202b5..00000000 --- a/app/src/main/assets/ru/about_contributors_light.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - -

Главный разработчик

-

Privacy Browser в основном разработан Soren Stoutner.

- -

Кодеры

- Thomas Jensen
- Hendrik Knackstedt - -

Переводчики

- Кевин ЛЕ ФЛОХИК (Kévin LE FLOHIC): Французский
- Тьяго Назарено Консейсао Силва де Хесус (Thiago Nazareno Conceição Silva de Jesus): бразильский португальский
- Bernhard G. Keller: немецкий
- Francesco Buratti: итальянский
- Jose A. León: испанский - -

Предыдущие переводчики

- Stefan Erhardt: немецкий
- Aaron Gerlach: немецкий - -
-
-

Приглашаем помочь как кодом, так и переводом.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/about_licenses_light.html b/app/src/main/assets/ru/about_licenses.html similarity index 89% rename from app/src/main/assets/ru/about_licenses_light.html rename to app/src/main/assets/ru/about_licenses.html index 9d6fce31..5043d2ed 100644 --- a/app/src/main/assets/ru/about_licenses_light.html +++ b/app/src/main/assets/ru/about_licenses.html @@ -20,7 +20,10 @@ - + + + + @@ -59,98 +62,98 @@ Модифицированный файл выпущен под лицензией GPLv3+.

Иконки

-

- являются производными от security и language, которые являются частью +

+ являются производными от security и language, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Полный текст лицензии приведен ниже. Модификации авторских прав © 2016 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от folder и exit_to_app, которые являются частью +

являются производными от folder и exit_to_app, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2017 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от bookmark и create_new_folder, которые являются частью +

являются производными от bookmark и create_new_folder, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2017 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от create_new_folder, которые являются частью +

являются производными от create_new_folder, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2017 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от exit_to_app, +

являются производными от exit_to_app, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2017 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от compare, +

являются производными от compare, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2017 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от sort, +

являются производными от sort, которые являются частью Android Material icon set и выпущены под Apache License 2.0. Модификации авторских прав © 2019 Soren Stoutner. Полученные изображения выпущены под лицензией GPLv3+.

-

cookie были созданы Google. Они выпущены под Apache License 2.0 +

cookie были созданы Google. Они выпущены под Apache License 2.0 и могут быть загружены из Material Design Icons. Он неизменен, за исключением такой информации, как цвет и размер.

Следующие значки взяты изAndroid Material icon set, которые выпущены под Apache License 2.0. Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/ru/about_licenses_dark.html b/app/src/main/assets/ru/about_licenses_dark.html deleted file mode 100644 index 31185614..00000000 --- a/app/src/main/assets/ru/about_licenses_dark.html +++ /dev/null @@ -1,1064 +0,0 @@ - - - - - - - - - - -

Авторские права

-

Авторские права Privacy Browser © 2015-2020 Soren Stoutner.

- -

Лицензия

-

Privacy Browser выпущен под лицензией GPLv3+. Полный текст лицензии приведен ниже. - Исходный код доступен на git.stoutner.com.

- -

Списки блокировки

-

EasyList и EasyPrivacy - лицензированы под лицензиями GPLv3+ - и Creative Commons Attribution-ShareAlike 3.0+ Unported. - Privacy Browser использует их с помощью опции GPLv3+.

- -

Fanboy’s Annoyance List и Fanboy’s Social Blocking List - выпущены под лицензией Creative Commons Attribution 3.0 Unported, - которая совместима с GPLv3+. Списки включены без изменений в Privacy Browser.

- -

Более подробную информацию о списках блокировки можно найти на веб-сайте EasyList.

- -

Библиотеки

-

Privacy Browser создан на базе библиотек AndroidX, - Kotlin - и кодовой базы из репозитория Google Material Maven, - которые выпущены под лицензией Apache 2.0.

- -

Бесплатный вариант Privacy Browser создан с помощью Firebase Ads, - выпущенной по лицензии Android Software Development Kit License.

- -

Классы

-

com.stoutner.privacybrowser.views.CheckedLinearLayout является модифицированной версией класса, содержащегося в исходном коде - Android Camera. - Оригинальный файл был выпущен под лицензией Apache 2.0. - Модифицированный файл выпущен под лицензией GPLv3+.

- -

Иконки

-

- являются производными от security и language, которые являются частью - Android Material icon set и выпущены под Apache License 2.0. Полный текст лицензии приведен ниже. - Модификации авторских прав © 2016 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от folder и exit_to_app, которые являются частью - Android Material icon set и выпущены под Apache License 2.0. - Модификации авторских прав © 2017 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от bookmark и create_new_folder, которые являются частью - Android Material icon set и выпущены под Apache License 2.0. - Модификации авторских прав © 2017 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от create_new_folder, которые являются частью - Android Material icon set и выпущены под Apache License 2.0. - Модификации авторских прав © 2017 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от exit_to_app, - которые являются частью Android Material icon set и выпущены под Apache License 2.0. - Модификации авторских прав © 2017 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от compare, которые являются частью Android Material icon set - и выпущены под Apache License 2.0. - Модификации авторских прав © 2017 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

являются производными от sort, - которые являются частью Android Material icon set и выпущены под Apache License 2.0. - Модификации авторских прав © 2019 Soren Stoutner. - Полученные изображения выпущены под лицензией GPLv3+.

-

cookie были созданы Google. Они выпущены под Apache License 2.0 - и могут быть загружены из Material Design Icons. Он неизменен, за исключением такой информации, как цвет и размер.

-

Следующие значки взяты изAndroid Material icon set, - которые выпущены под Apache License 2.0. - Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others’ Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/ru/about_links_light.html b/app/src/main/assets/ru/about_links.html similarity index 69% rename from app/src/main/assets/ru/about_links_light.html rename to app/src/main/assets/ru/about_links.html index eeb9e5c6..c43550c8 100644 --- a/app/src/main/assets/ru/about_links_light.html +++ b/app/src/main/assets/ru/about_links.html @@ -1,5 +1,5 @@ +

Websites

-

+

Новости

-

+

Дорожная карта

-

+

Система отслеживания ошибок и пожеланий

-

+

Форум

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/ru/about_links_dark.html b/app/src/main/assets/ru/about_links_dark.html deleted file mode 100644 index 151ec018..00000000 --- a/app/src/main/assets/ru/about_links_dark.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - -

Websites

- -

- Новости

- -

- Дорожная карта

- -

- Система отслеживания ошибок и пожеланий

- -

- Форум

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/about_permissions_dark.html b/app/src/main/assets/ru/about_permissions.html similarity index 91% rename from app/src/main/assets/ru/about_permissions_dark.html rename to app/src/main/assets/ru/about_permissions.html index 27071afb..deffdbce 100644 --- a/app/src/main/assets/ru/about_permissions_dark.html +++ b/app/src/main/assets/ru/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/ru/about_permissions_light.html b/app/src/main/assets/ru/about_permissions_light.html deleted file mode 100644 index 3d45cdcf..00000000 --- a/app/src/main/assets/ru/about_permissions_light.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - -

Полный доступ к сети

-

android.permission.INTERNET

-

Требуется для доступа WebView к интернету. Без этого разрешения Privacy Browser будет отображать “Нет браузера: угрозы вашей конфиденциальности нет из-за отсутствия доступа к интернету”.

- -

Установка ярлыков

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Требуется для добавления ярлыков веб-сайтов на главный экран.

- -

Чтение хранилища

-

android.permission.READ_EXTERNAL_STORAGE

-

Требуется для импорта настроек из общих папок. - В Android Marshmallow (API 23) и более поздних версиях, если это разрешение получено не будет, Privacy Browser может импортировать настройки из папок приложения.

- -

Запись хранилища

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Требуется для экспорта настроек и загрузки файлов в общие папки. - В Android Marshmallow (API 23) и более поздних версиях, если это разрешение получено не будет, Privacy Browser может экспортировать настройки и хранить загрузки в папках приложения.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/about_privacy_policy_dark.html b/app/src/main/assets/ru/about_privacy_policy.html similarity index 93% rename from app/src/main/assets/ru/about_privacy_policy_dark.html rename to app/src/main/assets/ru/about_privacy_policy.html index efa39e70..4f5e698d 100644 --- a/app/src/main/assets/ru/about_privacy_policy_dark.html +++ b/app/src/main/assets/ru/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -85,6 +88,6 @@ Stoutner никогда не будет продавать эту информацию или передавать ее третьей стороне, которая использовала бы ее для рекламы или маркетинга.


-

Ревизия 1.6, 22 мая 2018 года

+

Ревизия 1.7, 14 мая 2019 года

\ No newline at end of file diff --git a/app/src/main/assets/ru/about_privacy_policy_light.html b/app/src/main/assets/ru/about_privacy_policy_light.html deleted file mode 100644 index 3ccd02e2..00000000 --- a/app/src/main/assets/ru/about_privacy_policy_light.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser не собирает никакой пользовательской информации.

- - -

Google Play

-

Google Play имеет собственную политику конфиденциальности. - Google предоставляет разработчикам сводную анонимизированную информацию об установке, включающую их количество, организованную по следующим категориям.

-
    -
  • Версия Android (напр. Android 7.1)
  • -
  • Устройство (напр. Samsung Galaxy S6 [zeroflte])
  • -
  • Планшеты (напр. Tablets 10" и выше)
  • -
  • Страна (напр. Russian Federation)
  • -
  • Язык (напр. Russian)
  • -
  • Версия приложения (напр. 14)
  • -
  • Оператор (напр. Beeline - RU)
  • -
- - -

Рейтинги Google Play

-

Google Play имеет собственную политику конфиденциальности. - Google предоставляет разработчикам анонимизированные сводки следующей информации, связанной с пользовательскими рейтингами.

-
    -
  • Страна (напр. Russian Federation)
  • -
  • Язык (напр. Russian)
  • -
  • Версия приложения (напр. 14)
  • -
  • Версия Android (напр. Android 7.1)
  • -
  • Устройство (напр. Google Nexus 5X [bullhead])
  • -
  • Планшеты (напр. Tablets 10" и выше)
  • -
- - -

Отзывы Google Play

-

Google Play имеет собственную политику конфиденциальности. - Помимо имени автора отзыва, оценки и текста отзыва (все они доступны публично), Google предоставляет разработчику некоторую или всю следующую информацию.

-
    -
  • Код версии (напр. 7)
  • -
  • Имя версии (напр. 1.6)
  • -
  • Версия Android (напр. Android 5.1)
  • -
  • Устройство (напр. Galaxy S6 Edge+ [zenlte])
  • -
  • Производитель (напр. Samsung)
  • -
  • Тип устройства (напр. Phone)
  • -
  • Производитель CPU (напр. Samsung)
  • -
  • Модель CPU (напр. Exynos 7420)
  • -
  • Разрешение экрана (напр. 560 dpi)
  • -
  • Размер экрана (напр. 2560 x 1440)
  • -
  • ОЗУ (напр. 4096 MB)
  • -
  • Собственная платформа (напр. armeabi-v7a,armeabi,arm64v8a)
  • -
  • Версия OpenGL ES (напр. 3.1)
  • -
  • Язык устройства (напр. Russian)
  • -
- - -

Прямая связь

-

Пользователи могут напрямую связаться со Stoutner при помощи электронной почты и комментариев на stoutner.com.

- - -

Использование информации

-

Stoutner может использовать эту информацию, как помощь в разработке Privacy Browser и сообщать о статусе проекта пользователям. - Stoutner никогда не будет продавать эту информацию или передавать ее третьей стороне, которая использовала бы ее для рекламы или маркетинга.

- -
-

Ревизия 1.6, 22 мая 2018 года

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_domain_settings_dark.html b/app/src/main/assets/ru/guide_domain_settings.html similarity index 72% rename from app/src/main/assets/ru/guide_domain_settings_dark.html rename to app/src/main/assets/ru/guide_domain_settings.html index 4ef287d9..f1fc5b94 100644 --- a/app/src/main/assets/ru/guide_domain_settings_dark.html +++ b/app/src/main/assets/ru/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Безопасный просмотр веб-страниц

+

Безопасный просмотр веб-страниц

По умолчанию в Privacy Browser отключены JavaScript, файлы cookie и DOM-хранилище. Однако, для правильной работы, некоторым веб-сайтам эти опции необходимы. Настройки домена могут автоматически включать нужный набор опций при посещении определенного домена.

-

+

При посещении домена, для которого определены настройки, фон поля URL становится зеленым.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_domain_settings_light.html b/app/src/main/assets/ru/guide_domain_settings_light.html deleted file mode 100644 index fc4f9162..00000000 --- a/app/src/main/assets/ru/guide_domain_settings_light.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - -

Безопасный просмотр веб-страниц

- -

По умолчанию в Privacy Browser отключены JavaScript, файлы cookie и DOM-хранилище. Однако, для правильной работы, некоторым веб-сайтам эти опции необходимы. - Настройки домена могут автоматически включать нужный набор опций при посещении определенного домена.

- -

- -

При посещении домена, для которого определены настройки, фон поля URL становится зеленым.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_javascript_dark.html b/app/src/main/assets/ru/guide_javascript.html similarity index 87% rename from app/src/main/assets/ru/guide_javascript_dark.html rename to app/src/main/assets/ru/guide_javascript.html index 164339bb..e942f31c 100644 --- a/app/src/main/assets/ru/guide_javascript_dark.html +++ b/app/src/main/assets/ru/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript это сила

+

JavaScript это сила

В самом начале эпохи интернета веб-страницы были статическими, они содержали только текст и изображения, не изменялись и не взаимодействовали с пользователем. Статические веб-страницы имеют множество ограничений, поэтому велась разработка более функциональных решений. @@ -35,20 +38,20 @@ вызывать всплывающие меню и делать много других полезных вещей.

-

JavaScript это опасность

+

JavaScript это опасность

Конечно, концепция запуска произвольных программ с веб-сайта потенциально опасна. Поэтому, в JavaScript встроены ограничения, позволяющие ему не делать такие вещи, как установка вирусов. Однако оказывается, что эти ограничения слишком широки. Ниже представлен скриншот с сайта webkay, демонстрирующий какую информацию может извлекать JavaScript из устройства. Утечки браузера - еще один хороший ресурс.

-

+

Из соображений конфиденциальности идеальным был бы просмотр интернета с отключенным JavaScript. Однако, существуют веб-сайты, которые на законных основаниях требуют JavaScript для выполнения своих задач, а некоторые вообще не могут корректно работать без JavaScript, несмотря на то, что могут быть запрограммированы и без столь жестких условий. Privacy Browser решает эту задачу, упрощая включение и выключение JavaScript. - Нажатие на щит переключит его между синим или желтым - цветом (оба указывают на то, что JavaScript отключен) и красным (JavaScript включен). + Нажатие на щит переключит его между синим или желтым + цветом (оба указывают на то, что JavaScript отключен) и красным (JavaScript включен). Можете просмотреть информацию на сайте webkay, которую можно собрать с включенным и отключенным JavaScript.

Просмотр сайтов с отключенным JavaScript и включение его только в случае необходимости, значительно повышает конфиденциальность пользователей. diff --git a/app/src/main/assets/ru/guide_javascript_light.html b/app/src/main/assets/ru/guide_javascript_light.html deleted file mode 100644 index 24eeb12a..00000000 --- a/app/src/main/assets/ru/guide_javascript_light.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -

JavaScript это сила

- -

В самом начале эпохи интернета веб-страницы были статическими, они содержали только текст и изображения, не изменялись и не взаимодействовали с пользователем. - Статические веб-страницы имеют множество ограничений, поэтому велась разработка более функциональных решений. - Для упрощения создания динамических веб-страниц было разработано несколько различных технологий. JavaScript является одной из таких технологий.

- -

JavaScript - это язык программирования. Программы, написанные на JavaScript, размещаются на веб-серверах и отправляются на устройства как часть веб-страницы. - Устройство выполняет JavaScript на своем локальном процессоре и следует командам программы, которые могут анимировать изображения на веб-сайте, - вызывать всплывающие меню и делать много других полезных вещей.

- - -

JavaScript это опасность

- -

Конечно, концепция запуска произвольных программ с веб-сайта потенциально опасна. Поэтому, в JavaScript встроены ограничения, позволяющие ему не делать такие вещи, как установка вирусов. - Однако оказывается, что эти ограничения слишком широки. - Ниже представлен скриншот с сайта webkay, демонстрирующий какую информацию может извлекать JavaScript из устройства. - Утечки браузера - еще один хороший ресурс.

- -

- -

Из соображений конфиденциальности идеальным был бы просмотр интернета с отключенным JavaScript. - Однако, существуют веб-сайты, которые на законных основаниях требуют JavaScript для выполнения своих задач, а некоторые вообще не могут корректно работать без JavaScript, несмотря на то, - что могут быть запрограммированы и без столь жестких условий. Privacy Browser решает эту задачу, упрощая включение и выключение JavaScript. - Нажатие на щит переключит его между синим или желтым - цветом (оба указывают на то, что JavaScript отключен) и красным (JavaScript включен). - Можете просмотреть информацию на сайте webkay, которую можно собрать с включенным и отключенным JavaScript. - -

Просмотр сайтов с отключенным JavaScript и включение его только в случае необходимости, значительно повышает конфиденциальность пользователей. - Кроме того, JavaScript используется для загрузки большей части раздражающей рекламы, а также хлама, который отправляется на устройства с большинства современных веб-сайтов. - После его отключения веб-сайты будут загружаться быстрее, потреблять меньше сетевого трафика и меньше нагружать процессор, что приведет к увеличению времени автономной работы.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_local_storage_dark.html b/app/src/main/assets/ru/guide_local_storage.html similarity index 92% rename from app/src/main/assets/ru/guide_local_storage_dark.html rename to app/src/main/assets/ru/guide_local_storage.html index bd073f74..94fc93ca 100644 --- a/app/src/main/assets/ru/guide_local_storage_dark.html +++ b/app/src/main/assets/ru/guide_local_storage.html @@ -1,5 +1,5 @@ + -

Первичные файлы cookie

+

Первичные файлы cookie

Первичные файлы cookie устанавливаются тем веб-сайтом, который указан в строке URL.

@@ -40,10 +43,10 @@

Почти все веб-сайты с формами авторизации требуют, чтобы для входа в систему у пользователя были включены первичные файлы cookie. Именно так они убеждаются, что это все еще вы, когда вы переходите со страницы на страницу на сайте, и, на мой взгляд, это один из немногих законных способов использования файлов cookie.

-

Если первичные файлы cookie включены, но JavaScript отключен, значок конфиденциальности будет желтым как предупреждение.

+

Если первичные файлы cookie включены, но JavaScript отключен, значок конфиденциальности будет желтым как предупреждение.

-

Сторонние файлы cookie

+

Сторонние файлы cookie

Сторонние файлы cookie устанавливаются частями веб-сайта, которые загружаются с серверов, отличных от указанного в строке URL. Например, большинство веб-сайтов, на которых есть реклама, загружают их со стороннего рекламного брокера, например, @@ -73,7 +76,7 @@ Таким образом, включение первичных файлов cookie также разрешит и сторонние.

-

DOM-хранилище

+

DOM-хранилище

Хранилище объектной модели документа (Document Object Model), также известное как веб-хранилище, похоже на cookie (печенье) на стероидах. Если максимальный общий размер хранилища для всех файлов cookie с одного URL-адреса составляет 4 килобайта, @@ -81,7 +84,7 @@ Поскольку DOM-хранилище использует JavaScript для чтения и записи данных, включение его ни на что не влияет пока отключен JavaScript.

-

Данные формы

+

Данные формы

Данные формы содержат информацию, введенную в веб-формы, например имена пользователей, адреса, номера телефонов и т.д., и доступную в раскрывающемся списке при будущих посещениях. В отличие от других форм локального хранилища данные формы не отправляются на веб-сервер без специального взаимодействия с пользователем. diff --git a/app/src/main/assets/ru/guide_local_storage_light.html b/app/src/main/assets/ru/guide_local_storage_light.html deleted file mode 100644 index 14579020..00000000 --- a/app/src/main/assets/ru/guide_local_storage_light.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - -

Первичные файлы cookie

- -

Первичные файлы cookie устанавливаются тем веб-сайтом, который указан в строке URL.

- -

С первых дней интернета стало очевидным, что веб-сайтам было бы выгодно иметь возможность хранить информацию на компьютере для последующего доступа к ней. - Например, веб-сайт, предоставляющий информацию о погоде, может запросить у пользователя название города, а затем сохранить его в файле cookie. - При следующем посещении веб-сайта информация о погоде будет автоматически загружена для этого города, без необходимости вводить его снова.

- -

Как и со всем остальным в интернете, умные люди выяснили все способы злоупотребления cookie, чтобы делать то, что пользователи не одобрят, если узнают что именно происходит. - Например, веб-сайт может установить файл cookie на устройстве с уникальным номером. - Затем каждый раз, когда пользователь посещает веб-сайт с этого устройства, он может быть связан с уникальным профилем, который сервер хранит для этого номера, - даже если устройство подключается с разных IP-адресов.

- -

Почти все веб-сайты с формами авторизации требуют, чтобы для входа в систему у пользователя были включены первичные файлы cookie. - Именно так они убеждаются, что это все еще вы, когда вы переходите со страницы на страницу на сайте, и, на мой взгляд, это один из немногих законных способов использования файлов cookie.

- -

Если первичные файлы cookie включены, но JavaScript отключен, значок конфиденциальности будет желтым как предупреждение.

- - -

Сторонние файлы cookie

- -

Сторонние файлы cookie устанавливаются частями веб-сайта, которые загружаются с серверов, отличных от указанного в строке URL. - Например, большинство веб-сайтов, на которых есть реклама, загружают их со стороннего рекламного брокера, например, - Google AdSense. Каждый раз, когда сайт загружается, он запрашивает у рекламного брокера рекламу. - Рекламный брокер анализирует любую информацию, которую они могут иметь о пользователе, просматривает текущую ставку, - которую рекламодатели готовы заплатить за свою рекламу, и выбирает ту, которая будет отображаться. - Раздел веб-сайта, на котором отображается реклама, загружается с сервера рекламного брокера, а не с основного сервера.

- -

Поскольку большая часть рекламы в интернете обрабатывается лишь несколькими брокерами, им не потребовалось много времени, чтобы понять, - что они могут установить отслеживающий cookie на устройстве пользователя и узнать все посещаемые пользователем сайты. - Каждый раз, когда реклама загружается от брокера, первое, что он делает это проверяет имеет ли устройство уникальный номер отслеживающего cookie. - Если это так, он ищет профиль для этого номера и делает заметку о новом сайте. - Чтобы это проверить, пользователь может выполнить поиск на одном сайте для продукта, который он обычно не ищет, например грецких орехов, - а затем вдруг начать наблюдать рекламу для грецких орехов на каждом посещаемом сайте.

- -

В дополнение к рекламным брокерам сайты социальных сетей обнаружили, что тоже могли бы принять участие в этом. - Несколько лет назад основные социальные сети, такие как Facebook и Twitter, убедили владельцев большого количества веб-сайтов в том, - что им было бы интересно разместить небольшие значки социальных сетей на своих страницах. Это не просто изображения. - Они содержат встроенный код, который ссылается на сайт в социальных сетях и, среди прочего, - загружает сторонний файл cookie на устройство. - Эти файлы cookie размещаются, даже если у пользователя нет учетной записи на платформе социальных сетей. - Со временем такие компании, как Facebook (который также запустил рекламную сеть), создали довольно большое количество подробных профилей о людях, - у которых даже не было аккаунта на сайте социальной сети.

- -

Нет ни одной веской причины когда-либо разрешать сторонние файлы cookie. На устройствах с Android KitKat или старше (версия <= 4.4.4 или API <= 20), WebView не - различает первичные и сторонние файлы cookie. - Таким образом, включение первичных файлов cookie также разрешит и сторонние.

- - -

DOM-хранилище

- -

Хранилище объектной модели документа (Document Object Model), также известное как веб-хранилище, похоже на cookie (печенье) на стероидах. - Если максимальный общий размер хранилища для всех файлов cookie с одного URL-адреса составляет 4 килобайта, - то DOM-хранилище вмещает в себя мегабайты на сайт. - Поскольку DOM-хранилище использует JavaScript для чтения и записи данных, включение его ни на что не влияет пока отключен JavaScript.

- - -

Данные формы

- -

Данные формы содержат информацию, введенную в веб-формы, например имена пользователей, адреса, номера телефонов и т.д., и доступную в раскрывающемся списке при будущих посещениях. - В отличие от других форм локального хранилища данные формы не отправляются на веб-сервер без специального взаимодействия с пользователем. - Начиная с Android Oreo (8.0), данные формы WebView были заменены на службу автозаполнения. - Таким образом, элементы управления данными формы больше не отображаются на новых устройствах Android.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_overview_dark.html b/app/src/main/assets/ru/guide_overview.html similarity index 86% rename from app/src/main/assets/ru/guide_overview_dark.html rename to app/src/main/assets/ru/guide_overview.html index f5278c37..6d9afdf5 100644 --- a/app/src/main/assets/ru/guide_overview_dark.html +++ b/app/src/main/assets/ru/guide_overview.html @@ -1,5 +1,5 @@ + -

Настоящая конфиденциальность

+

Настоящая конфиденциальность

Privacy Browser разработан, чтобы позволить вам максимально контролировать вашу конфиденциальность, сохраняя при этом доступ в интернет. Когда браузер подключается к веб-сайту, определенные фрагменты информации, необходимые для облегчения соединения, передаются на сервер. @@ -37,7 +40,7 @@ Privacy Browser разработан для предоставления пользователю как можно больше информации и контроля над этими методами отслеживания.

-

Ограничения Android WebView

+

Ограничения Android WebView

Privacy Browser использует встроенный Android WebView для визуализации веб-сайтов. Существуют некоторые ограничения, которые предоставляет WebView для управления настройками конфиденциальности. Например, невозможно отключить некоторые команды JavaScript при отключении других. diff --git a/app/src/main/assets/ru/guide_overview_light.html b/app/src/main/assets/ru/guide_overview_light.html deleted file mode 100644 index 272f3083..00000000 --- a/app/src/main/assets/ru/guide_overview_light.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

Настоящая конфиденциальность

- -

Privacy Browser разработан, чтобы позволить вам максимально контролировать вашу конфиденциальность, сохраняя при этом доступ в интернет. - Когда браузер подключается к веб-сайту, определенные фрагменты информации, необходимые для облегчения соединения, передаются на сервер. - Например, сервер получит ваш IP-адрес и номер порта, которые необходимы ему, чтобы узнать, куда отправить ответ. - Эта информация часто регистрируется сервером, позволяя разработчику веб-сайта создавать отчеты, показывающие, как часто загружалась веб-страница и сколько разных IP-адресов к ней обращалось.

- -

Большинство владельцев сайтов хотят получить как можно больше информации о своих посетителях, включая отслеживание их через через сторонние сайты. - Используется множество различных методов, включая запросы или размещение дополнительной информации на устройстве пользователя, которые упрощают отслеживание. - Почти все браузеры будут добровольно участвовать в этом отслеживании, не сообщая пользователю, что они это делают. - Privacy Browser разработан для предоставления пользователю как можно больше информации и контроля над этими методами отслеживания.

- - -

Ограничения Android WebView

- -

Privacy Browser использует встроенный Android WebView для визуализации веб-сайтов. Существуют некоторые ограничения, которые предоставляет WebView для управления настройками конфиденциальности. - Например, невозможно отключить некоторые команды JavaScript при отключении других. - В будущем Privacy Browser переключится на форк WebView, называемый Privacy WebView.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_proxies_dark.html b/app/src/main/assets/ru/guide_proxies.html similarity index 92% rename from app/src/main/assets/ru/guide_proxies_dark.html rename to app/src/main/assets/ru/guide_proxies.html index f362adbc..c4bcc4ef 100644 --- a/app/src/main/assets/ru/guide_proxies_dark.html +++ b/app/src/main/assets/ru/guide_proxies.html @@ -20,11 +20,14 @@ - + + + + -

Прокси и их ограничения

+

Прокси и их ограничения

Существуют две основные отрицательные категории субъектов, которые нарушают конфиденциальность в интернете: злонамеренные правительства, имеющие доступ к интернет-провайдерам и крупные корпорации, которые управляют социальными и рекламными сетями. @@ -32,7 +35,7 @@ но не от мегакорпораций (встраивающих вредоносный код на веб-серверы).

-

Злонамеренные правительства

+

Злонамеренные правительства

Злонамеренные правительства часто следят за своими гражданами, чтобы наказать за инакомыслие или правозащитную деятельность. Как правило, они либо работают с локальными интернет-провайдерами, либо могут заставить их раскрыть информацию, содержащую статистику посещений сайтов нужного пользователя. @@ -45,7 +48,7 @@ и пользователи могут быть наказаны, поскольку правительства предполагают, что они совершают нечто запрещенное. Таким образом, прокси-серверы могут быть полезны, но они не являются панацеей.

-

Крупные корпорации

+

Крупные корпорации

Когда пользователь подключается к веб-серверу, сервер может видеть IP-адрес пользователя. Несмотря на то, что пока это работает не идеально, IP-адреса могут быть превращены в физические адреса с достаточным количеством точности. @@ -68,7 +71,7 @@ отключение файлов cookie и хранилища DOM, а также использование браузера, отпечаток которого трудно определить.

-

Использование прокси

+

Использование прокси

Несмотря на свои ограничения, прокси-серверы могут быть полезны в некоторых ситуациях. Tor и I2P @@ -76,6 +79,6 @@ При включенном в Privacy Browser проксировании, панель приложения будет иметь светло-синий фон вместо светло-серого по умолчанию. Поскольку трафик маршрутизируется через несколько прокси-узлов, использование многоуровневого прокси зачастую требует гораздо больше времени, чем прямое подключение к интернету.

- + \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_proxies_light.html b/app/src/main/assets/ru/guide_proxies_light.html deleted file mode 100644 index 9210ea4b..00000000 --- a/app/src/main/assets/ru/guide_proxies_light.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - -

Прокси и их ограничения

- -

Существуют две основные отрицательные категории субъектов, которые нарушают конфиденциальность в интернете: злонамеренные правительства, имеющие доступ к интернет-провайдерам и крупные корпорации, - которые управляют социальными и рекламными сетями. - Такие прокси, как TOR (The Onion Router) и I2P (the Invisible Internet Project) полезны для защиты конфиденциальности от вредоносных правительств (шпионящих за транзитным трафиком), - но не от мегакорпораций (встраивающих вредоносный код на веб-серверы).

- - -

Злонамеренные правительства

- -

Злонамеренные правительства часто следят за своими гражданами, чтобы наказать за инакомыслие или правозащитную деятельность. - Как правило, они либо работают с локальными интернет-провайдерами, либо могут заставить их раскрыть информацию, содержащую статистику посещений сайтов нужного пользователя. - Многоуровневые прокси-серверы предназначены для пресечения нарушения конфиденциальности путем шифрования трафика от устройства пользователя и маршрутизации его через несколько серверов в интернете, - прежде чем отправить его в точку назначения. - Это означает, что ни один провайдер, сервер или веб-сайт не может знать ни IP-адрес устройства пользователя, ни IP-адрес конечного веб-сервера. - Злонамеренные правительства и интернет-провайдеры, которых они контролируют, не могут узнать к каким веб-серверам обращается пользователь, - но они могут определить использование пользователем многоуровневой системы прокси-серверов. - В некоторых странах использование прокси может быть истолковано как подтверждение незаконного поведения ("Если бы вам нечего было скрывать, вы бы не шифровали свой трафик"), - и пользователи могут быть наказаны, поскольку правительства предполагают, что они совершают нечто запрещенное. Таким образом, прокси-серверы могут быть полезны, но они не являются панацеей.

- - -

Крупные корпорации

- -

Когда пользователь подключается к веб-серверу, сервер может видеть IP-адрес пользователя. - Несмотря на то, что пока это работает не идеально, IP-адреса могут быть превращены в физические адреса с достаточным количеством точности. - Небольшие веб-серверы обычно используют IP-адреса для определения местоположения пользователей, посещающих их сайт. - Прокси-серверы являются хорошим решением для маскировки местоположения пользователя от этих серверов. - Но крупные корпорации, которые владеют социальными и рекламными сетями, используют весь профиль информации, который предназначен для отслеживания пользователей через устройства и IP-адреса. - В этих профилях используются различные методы идентификации пользователей, включая JavaScript, файлы cookie, - идентификаторы отслеживания и отпечаток браузера. - Поскольку подавляющее большинство веб-сайтов в интернете загружают рекламу от одной из основных сетей или встраивают значки социальных сетей с ассоциированным с ними JavaScript, - эти корпорации имеют встроенные профили почти для каждого пользователя в интернете и могут отслеживать интернет-активность на несвязанных сайтах.

- -

Они отслеживают каждый посещаемый сайт, все, что приобретается, каждую кредитную карту, используемую для совершения покупки, каждый адрес, куда отправляются товары, - метаданные GPS каждого изображения, загружаемого в интернет. - Они создают профиль из возраста пользователя, пола, семейного положения, адреса, политических пристрастий, религиозной принадлежности, семейных обстоятельств, - количества домашних животных и всего остального, что им удается получить. - Они даже скупают базы данных транзакций по кредитным картам в местных магазинах, поэтому они могут отслеживать автономные модели покупок пользователей в своих профилях. - Поскольку у них уже есть гораздо более точная адресная информация о пользователе, чем раскрытый IP-адрес, прокси-серверы не обеспечивают реальной защиты конфиденциальности от мегакорпораций.

- -

Единственной и самой лучшей защитой конфиденциальности от крупных корпораций является просмотр веб-сайта с отключенным JavaScript, за которым следует блокирование рекламных сетей, - отключение файлов cookie и хранилища DOM, а также использование браузера, отпечаток которого трудно определить.

- - -

Использование прокси

- -

Несмотря на свои ограничения, прокси-серверы могут быть полезны в некоторых ситуациях. - Tor и I2P - имеют приложения для Android, которые облегчают использование их прокси-сетей. - При включенном в Privacy Browser проксировании, панель приложения будет иметь светло-синий фон вместо светло-серого по умолчанию. - Поскольку трафик маршрутизируется через несколько прокси-узлов, использование многоуровневого прокси зачастую требует гораздо больше времени, чем прямое подключение к интернету.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_requests_dark.html b/app/src/main/assets/ru/guide_requests.html similarity index 93% rename from app/src/main/assets/ru/guide_requests_dark.html rename to app/src/main/assets/ru/guide_requests.html index 19db1567..8f69e1cf 100644 --- a/app/src/main/assets/ru/guide_requests_dark.html +++ b/app/src/main/assets/ru/guide_requests.html @@ -1,5 +1,5 @@ + -

Запросы ресурсов

+

Запросы ресурсов

При загрузке URL-адреса обычно происходит ряд запросов ресурсов для CCS, JavaScript, изображений и других файлов. Сведения об этих запросах можно просмотреть в активности запросов. В навигационном меню имеется ссылка на активность запросов, а также показано, сколько запросов было заблокировано. При нажатии на запрос отображаются сведения о том, почему он был разрешен или заблокирован.

-

+

Privacy Browser включает в себя четыре распространенных списка блокировки, основанных на синтаксисе Adblock: EasyList, EasyPrivacy, Fanboy’s Annoyance List, и Fanboy’s Social Blocking List. diff --git a/app/src/main/assets/ru/guide_requests_light.html b/app/src/main/assets/ru/guide_requests_light.html deleted file mode 100644 index b6577a1b..00000000 --- a/app/src/main/assets/ru/guide_requests_light.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - -

Запросы ресурсов

- -

При загрузке URL-адреса обычно происходит ряд запросов ресурсов для CCS, JavaScript, изображений и других файлов. Сведения об этих запросах можно просмотреть в активности запросов. - В навигационном меню имеется ссылка на активность запросов, а также показано, сколько запросов было заблокировано. - При нажатии на запрос отображаются сведения о том, почему он был разрешен или заблокирован.

- -

- -

Privacy Browser включает в себя четыре распространенных списка блокировки, основанных на синтаксисе Adblock: - EasyList, EasyPrivacy, Fanboy’s Annoyance List, и Fanboy’s Social Blocking List. - Эти списки блокировки обрабатываются Privacy Browser в следующих 22 подсписках, которые проверяют запросы ресурсов в указанном порядке.

- -
    -
  1. Основной белый список
  2. -
  3. Конец белого списка
  4. -
  5. Белый список доменов
  6. -
  7. Начало белого списка доменов
  8. -
  9. Конец белого списка доменов
  10. -
  11. Сторонний белый список
  12. -
  13. Сторонний белый список доменов
  14. -
  15. Начало стороннего белого списка доменов
  16. -
  17. Основной черный список
  18. -
  19. Начало черного списка
  20. -
  21. Конец черного списка
  22. -
  23. Черный список доменов
  24. -
  25. Начало черного списка доменов
  26. -
  27. Конец черного списка доменов
  28. -
  29. Регулярные выражения черного списка доменов
  30. -
  31. Сторонний черный список
  32. -
  33. Начало стороннего черного списка доменов
  34. -
  35. Сторонний черный список доменов
  36. -
  37. Начало стороннего черного списка доменов
  38. -
  39. Регулярные выражения стороннего черного списка
  40. -
  41. Регулярные выражения стороннего черного списка доменов
  42. -
  43. Регулярные выражения черного списка
  44. -
- -

Исходные списки проверяются на начало URL-адреса. Окончательные списки проверяются на конец URL-адреса. Списки доменов проверяют только определенные домены. - Сторонние списки применяются только в том случае, если корневой домен запроса отличается от корневого домена основного URL-адреса. - Списки регулярных выражений следуют за синтаксисом регулярных выражений. - Каждый элемент подсписка имеет одну или несколько записей. - В случае подсписков домена, запрос ресурса проверяется только в отношении элемента, если первая запись соответствует домену основного URL-адреса.

- -

Из-за ограничений в Android WebView, а также для ускорения обработки запросов, в Privacy Browser реализована упрощенная интерпретация синтаксиса Adblock. - Иногда это может привести к ложным срабатываниям, когда ресурсы разрешаются или блокируются способами, которые не были предназначены для исходной записи. - Более подробное описание способа обработки записей списка блокировки доступно на stoutner.com.

- -

В Privacy Browser встроено три дополнительных списка блокировки. - UltraList и UltraPrivacy - блокируют рекламу и трекеры, которых нет в EasyList и EasyPrivacy. Третий блокирует все сторонние запросы. - Например, если www.website.com загружает изображение с сайта images.website.com, - запрос не будет считаться сторонним и не будет заблокирован, так как они оба используют один и тот же базовый домен website.com. - Блокировка всех сторонних запросов увеличивает конфиденциальность, но этот список блокировки по умолчанию отключен, поскольку он ломает большое количество веб-сайтов.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_ssl_certificates_dark.html b/app/src/main/assets/ru/guide_ssl_certificates.html similarity index 88% rename from app/src/main/assets/ru/guide_ssl_certificates_dark.html rename to app/src/main/assets/ru/guide_ssl_certificates.html index dd2212e2..5d7262df 100644 --- a/app/src/main/assets/ru/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/ru/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Подключение с уверенностью

+

Подключение с уверенностью

При посещении зашифрованного URL (тот, который начинается с HTTPS) веб-сервер использует сертификат SSL для шифрования информации, отправленной в браузер, и для идентификации сервера. Цель идентификации сервера состоит в том, чтобы запретить машине, расположенной между браузером и веб-сервером, притворяться сервером и дешифровать информацию во время ее транзита. @@ -36,14 +38,14 @@

Закрепление сертификата SSL указывает браузеру, что для определенного домена должен быть доверен только один определенный сертификат SSL. Любой другой сертификат, даже если он действителен, будет отклонен.

-

+

Срок действия сертификатов SSL истекает в указанную дату, поэтому даже закрепленные сертификаты SSL будут периодически обновляться. Как правило, закрепление сертификатов SSL в большинстве случаев не требуется. Но для того, кто подозревает, что за ним ведется наблюдение, закрепление сертификата SSL поможет обнаружить и помешать атаке MITM. Privacy Browser также имеет возможность закрепления IP-адресов.

-

+

Сертификаты SSL могут быть закреплены в настройках домена. Помимо защиты от атак MITM, закрепление самоподписанного сертификата для устройства, такого как беспроводной маршрутизатор или точка доступа, удалит сообщение об ошибке, diff --git a/app/src/main/assets/ru/guide_ssl_certificates_light.html b/app/src/main/assets/ru/guide_ssl_certificates_light.html deleted file mode 100644 index b3fc3d4c..00000000 --- a/app/src/main/assets/ru/guide_ssl_certificates_light.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - -

Подключение с уверенностью

- -

При посещении зашифрованного URL (тот, который начинается с HTTPS) веб-сервер использует сертификат SSL для шифрования информации, отправленной в браузер, и для идентификации сервера. - Цель идентификации сервера состоит в том, чтобы запретить машине, расположенной между браузером и веб-сервером, притворяться сервером и дешифровать информацию во время ее транзита. - Этот тип атаки известен как атака "Человек посередине" (MITM). - Сертификаты SSL генерируются органами сертификации: компаниями, которые проверяют идентификационные данные сервера и выдают сертификат за определенную плату. - В Android есть список доверенных центров сертификации и будет принимать любые их сертификаты для любого веб-сайта. - Организации не должны получать сертификат SSL для доменов, которые они не контролируют, но на практике многие правительства и крупные корпорации смогли это сделать.

- -

Закрепление сертификата SSL указывает браузеру, что для определенного домена должен быть доверен только один определенный сертификат SSL. - Любой другой сертификат, даже если он действителен, будет отклонен.

- -

- -

Срок действия сертификатов SSL истекает в указанную дату, поэтому даже закрепленные сертификаты SSL будут периодически обновляться. - Как правило, закрепление сертификатов SSL в большинстве случаев не требуется. - Но для того, кто подозревает, что за ним ведется наблюдение, закрепление сертификата SSL поможет обнаружить и помешать атаке MITM. - Privacy Browser также имеет возможность закрепления IP-адресов.

- -

- -

Сертификаты SSL могут быть закреплены в настройках домена. - Помимо защиты от атак MITM, закрепление самоподписанного сертификата для устройства, такого как беспроводной маршрутизатор или точка доступа, удалит сообщение об ошибке, - которое обычно отображается каждый раз, когда загружается его сайт. - При нажатии на активную вкладку отображается текущий сертификат SSL веб-сайта.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_tracking_ids_dark.html b/app/src/main/assets/ru/guide_tracking_ids.html similarity index 80% rename from app/src/main/assets/ru/guide_tracking_ids_dark.html rename to app/src/main/assets/ru/guide_tracking_ids.html index 4d8abd96..9151924b 100644 --- a/app/src/main/assets/ru/guide_tracking_ids_dark.html +++ b/app/src/main/assets/ru/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Не отслеживать

+

Не отслеживать

Несколько лет назад W3C (консорциум World Wide Web) создал механизм для браузеров для информирования веб-серверов о том, что они не хотели бы отслеживаться. Это достигается путем включения заголовка DNT (Не отслеживать) в веб-запросы.

@@ -33,7 +36,7 @@ Например, Yahoo, Google, Microsoft и Facebook игнорируют, по крайней мере, некоторые заголовки DNT.

-

Модификация URL

+

Модификация URL

Privacy Browser удаляет идентификаторы отслеживания из URL-адресов, такие как ?utm_ из Google Analytics и ?fbclick= из Facebook. Модификация URL может быть отключена в настройках, если она вызывает проблемы.

diff --git a/app/src/main/assets/ru/guide_tracking_ids_light.html b/app/src/main/assets/ru/guide_tracking_ids_light.html deleted file mode 100644 index ad4d8b33..00000000 --- a/app/src/main/assets/ru/guide_tracking_ids_light.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Не отслеживать

- -

Несколько лет назад W3C (консорциум World Wide Web) создал механизм для браузеров для информирования веб-серверов о том, что они не хотели бы отслеживаться. - Это достигается путем включения заголовка DNT (Не отслеживать) в веб-запросы.

- -

Заголовок DNT на самом деле не обеспечивает большую конфиденциальность, поскольку большинство веб-серверов его игнорируют. - Например, Yahoo, Google, Microsoft и Facebook игнорируют, по крайней мере, некоторые заголовки DNT.

- - -

Модификация URL

- -

Privacy Browser удаляет идентификаторы отслеживания из URL-адресов, такие как ?utm_ из Google Analytics и - ?fbclick= из Facebook. Модификация URL может быть отключена в настройках, если она вызывает проблемы.

- - \ No newline at end of file diff --git a/app/src/main/assets/ru/guide_user_agent_light.html b/app/src/main/assets/ru/guide_user_agent.html similarity index 94% rename from app/src/main/assets/ru/guide_user_agent_light.html rename to app/src/main/assets/ru/guide_user_agent.html index b43fd007..adad5d89 100644 --- a/app/src/main/assets/ru/guide_user_agent_light.html +++ b/app/src/main/assets/ru/guide_user_agent.html @@ -20,11 +20,14 @@ - + + + + -

Идентификация браузера

+

Идентификация браузера

При подключении браузера к веб-сайтам происходит отправка пользовательского агента, который идентифицирует браузер и возможности визуализации, которыми он обладает. Веб-сервер может использовать эту информацию, чтобы решить, какую версию сайта отправить в браузер. @@ -38,7 +41,7 @@ На скриншоте ниже показан Pixel 2 XL под управлением Android 10 с установленным Android WebView 84.0.4147.125. Большинство веб-серверов признают это как мобильный браузер и будут отображать мобильную версию сайта, если таковая имеется.

- +

В пользовательском агенте достаточно информации о том, что иногда только несколько посетителей веб-сайта будут выглядеть одинаковыми. Если пользовательский агент сочетается с другой частью неуникальной идентифицирующей информации, часто это приводит к уникальному отпечатку браузера. @@ -47,7 +50,7 @@ Если этот тест выполняется с включенным JavaScript, объем информации, которая раскрывается, значительно увеличивается. Browser Leaks и Am I Unique также являются хорошими источниками информации по этой теме.

- +

Существует несколько предустановленных пользовательских агентов, которые соответствуют обычным браузерам и операционным системам. Для использования отпечатков браузера существует правило - все, что редко встречается, легче отслеживать. diff --git a/app/src/main/assets/ru/guide_user_agent_dark.html b/app/src/main/assets/ru/guide_user_agent_dark.html deleted file mode 100644 index 659af8f2..00000000 --- a/app/src/main/assets/ru/guide_user_agent_dark.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - -

Идентификация браузера

- -

При подключении браузера к веб-сайтам происходит отправка пользовательского агента, который идентифицирует браузер и возможности визуализации, которыми он обладает. - Веб-сервер может использовать эту информацию, чтобы решить, какую версию сайта отправить в браузер. - Например, многие сайты имеют разные версии для компьютерных и мобильных браузеров.

- -

По умолчанию Privacy Browser использует собственный пользовательский агент PrivacyBrowser/1.0. На веб-сервер отправляется минимум информации. - Поскольку веб-серверы не распознают его пользовательским агентом мобильного телефона, они обычно отображают версию сайта для компьютера.

- -

Для сравнения, пользовательский агент WebView по умолчанию раскрывает большой объем информации об аппаратном и программном обеспечении устройства. - В меню Настройки выберите WebView по умолчанию, поскольку User agent отображает пользовательский агент, который будет отправлен. - На скриншоте ниже показан Pixel 2 XL под управлением Android 10 с установленным Android WebView 84.0.4147.125. - Большинство веб-серверов признают это как мобильный браузер и будут отображать мобильную версию сайта, если таковая имеется.

- - - -

В пользовательском агенте достаточно информации о том, что иногда только несколько посетителей веб-сайта будут выглядеть одинаковыми. - Если пользовательский агент сочетается с другой частью неуникальной идентифицирующей информации, часто это приводит к уникальному отпечатку браузера. - Фонд Electronic Frontier Foundation создал инструмент под названием Panopticlick, чтобы продемонстрировать, - сколько информации можно извлечь из этих источников. - Если этот тест выполняется с включенным JavaScript, объем информации, которая раскрывается, значительно увеличивается. - Browser Leaks и Am I Unique также являются хорошими источниками информации по этой теме.

- - - -

Существует несколько предустановленных пользовательских агентов, которые соответствуют обычным браузерам и операционным системам. - Для использования отпечатков браузера существует правило - все, что редко встречается, легче отслеживать. - По мере распространения Privacy Browser использование PrivacyBrowser/1.0 в качестве пользовательского агента станет хорошим выбором для обеспечения конфиденциальности. - Firefox или Chrome являются наиболее распространенными пользовательскими агентами, но они автоматически обновляются и их номера версий меняются настолько быстро, что, - скорее всего, пользовательские агенты, включенные в Privacy Browser, часто будут не соответствовать большинству пользовательских агентов в журналах сервера.

- -

Некоторые сайты работают неправильно, если они не распознают пользовательский агент. - Использование параметров домена для установки агента пользователя WebView по умолчанию, или другого пользовательского агента, который корректно распознается, обычно решает проблему. - Android WebView не позволяет пользовательскому агенту быть пустым. В этом случае WebView отправляет на сервер пользовательский агент по умолчанию.

- - \ No newline at end of file diff --git a/app/src/main/assets/shared_images/add.svg b/app/src/main/assets/shared_images/add.svg new file mode 100644 index 00000000..d20a2d51 --- /dev/null +++ b/app/src/main/assets/shared_images/add.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/add_dark.png b/app/src/main/assets/shared_images/add_dark.png deleted file mode 100644 index c53b6387e90fdd015da3169a32eca60dfc80a341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK8J-3#%eXmvS&VOJdi-3BA1>+G;1wV#D zrVe3;ISh|T7y7$j0>FVdQ&MBb@0Q3@}Z~y=R diff --git a/app/src/main/assets/shared_images/add_light.png b/app/src/main/assets/shared_images/add_light.png deleted file mode 100644 index 5c486bb4e35e9b4f2f84c21b4c722622cc493863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l`g^)K zhE&XXd*`4hi=%+U#UP%;4kiGS>E__=_8$-f|)blYtKKuOmcel9b1NKP6a=PLZ%L3hdB(7SOnA? zEEtcFE;LVU-|G{9{}}I?Q}T_ceCPZJK+dntIrfeI*o?h%Dsk diff --git a/app/src/main/assets/shared_images/arrow_back.svg b/app/src/main/assets/shared_images/arrow_back.svg new file mode 100644 index 00000000..30477dcd --- /dev/null +++ b/app/src/main/assets/shared_images/arrow_back.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/arrow_back_dark.png b/app/src/main/assets/shared_images/arrow_back_dark.png deleted file mode 100644 index ff07fd799be463eecc79b6216352a2e97085baca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKWQW5e_ngM58??<1@U0NIz`(s=A?GF+t_c?w8cfs? zaqWB`6Mufr^Ov?e7r&n>+OO&kv=0gnOiF#GW^BIr{6U8Q$L^;+JAbCe>X(ho#d|-( zT>_4pK7Q~1A?M4_7cbgAu8&E3_W9!TCC$-2`b}GR9scoKaF0Z7URuEcAj?Lwwob~V zXa3BerpD*p?lZF+)g>O&Kl7tia=*c2@w7jOdg5n%5{P*V! zN*1|ttorWL-4D7?o%wub<-^kp4!JaN2rw!#EwXIVSBhX1RA5T$d~oqa^@52&VI>6@ z2NU-Xku2H@Oi{`|rp)Abzt7wY)^Snhpu6B2kY13YGeQTOFMfAee2l}cBY_p7;LGbJ zx6jzf*VX|;(fXj7v3$Rsx$!P%mSgd&qg@jIY~8KM^f{G<_gz>hAuI*%zO~ e;trV1)an^aPus?bR3uCSiF&&FxvX4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l{`GWm z45^s&_Kt5>aG=bwhvDK6T-bN=JO|-;dpb zd**$J>v^#57Usu_b1y( z|39@Q>Cd5__!%F$jq4JR>7V)0D!Jd_v3MHkg8yb#8a#R)rMlDO(~Fk=zmuQTPMYtV zZ=!EMDaNn1GnlvXsrB~fhcCu|Wwv?q@q(>$+|QD0)(ns5@0`adQO{Pzn($}l3(*7j zRsLJq&Tgw>{a|=}MtJQTE%0|tnhN|Qgt6a}WDU;i~?o|`F%J-G3n<+X~w z+D^^8GE$8n#oz4X=!riND=4vl!e1ckf*I3e@ol$cVDZGjFk}6H&5y3p`WABxK!TpG KelF{r5}E+3%?6$T diff --git a/app/src/main/assets/shared_images/arrow_forward.svg b/app/src/main/assets/shared_images/arrow_forward.svg new file mode 100644 index 00000000..43e979b7 --- /dev/null +++ b/app/src/main/assets/shared_images/arrow_forward.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/arrow_forward_dark.png b/app/src/main/assets/shared_images/arrow_forward_dark.png deleted file mode 100644 index 5d5083fd08183d9e36254859e8554a0bafb7757e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKxBj;(G7hbeG43&rZcH~3A%R9 zy+7}x_44x-i+y+)%OH`S^$UwT~i&KPTDv7433mkmKxY6+4kD!u+-q}JX!t2D)yOdIVSeae$-)H2 zGxsY)_s(1P@^nWtH&DJWUbVqe+OBRY!?P^?$KjQl6;qDx5jkUfJBH`i&ZkEglunx7 z{!jMCrM_^c-u)@Z^3VL}mE3Rm*nHaEf3kOecu%`~Pax@!s&QR1LMrXgv7Y-8WxpFd z9_!EiD2NLp8BjmZ9Vs6CQUv&;dak{t1mx` z`OO69?0jxs*3QvWza~$x@nip8UO|cd-PuY8b>`tfBHT0VV+cPiA{iQ%{$|(hvkc*@ RH3lUy22WQ%mvv4FO#q?}8i4=+ diff --git a/app/src/main/assets/shared_images/arrow_forward_light.png b/app/src/main/assets/shared_images/arrow_forward_light.png deleted file mode 100644 index afbd57b414248838f8170200ba4139aece42704e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)le)e>6 z45^s&_O5N7Fr$R)MQ&bJUXhlz*d+&fb#?ltZeZBPz!h@9YC_YB2?8RXvpfRp<`mle zJ2!FJnUp2vxhIp=^?)`(LB!6pKMy+0ezoOS?B2=;*@?&Xj{PsM>qwYz`f+!{gw@By z4>DZu)o)@hyZq6$prLQ~-5=t|Gvk!xTGFq2Zs$K>e2`I)QOSX&MC{;n7lTTGav_`2xVG!8dmkXjWcA+S)oV2wY^Vp-Luk3dxsku3dU zR_~WpZN0Gb`h(Q3`>KlC=l>1eyV~yVYtgqi+TVTSD0uT@=7W!Vb)4J3ZTWSBPf6gw zzgwOxOgHko-4z=CZqHz0ifG?|b-t>fPQ%~ttE-}G;~qT$$@axF-AM252a@5|lKby) z#hv;QeQ>gDsQs?nx(_bD`ua|P=I>2sts9TUTR!Gb`*X0ze#S@k+s__9I2OM%_n*R% zAKK|qLF0c3$K=oaXqK$sko(VZ$;a?>AhrQi*A26HvD80PZ$EqesAqo>R3T9E+ZwBr zKa?fwcRW7Vw&(PZ+3Y*w#0p~mo>8vfGTSZT4|7>8%Q5)}t2lb>Pdo(@7hHkdoXOLx eU{S=tu;y;P>{W+oLH9&Ukf5ilpUXO@geCyOgAUdJ diff --git a/app/src/main/assets/shared_images/bookmarks.svg b/app/src/main/assets/shared_images/bookmarks.svg new file mode 100644 index 00000000..1359344d --- /dev/null +++ b/app/src/main/assets/shared_images/bookmarks.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/bookmarks_dark.png b/app/src/main/assets/shared_images/bookmarks_dark.png deleted file mode 100644 index be0ce5e17c60462e1a1967cc3758cb1f5443d8ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb2=NdAc}; zRLpsM%XdX+sKl|4|5t~Fgmf%j;`A^)@Z|y~&NE$E0T`eL*uqvJULm(* z)#F07w;CVHTx9h27U(lg_#*Ye?x)<3oBJ5z`a0^pbR%jRCfPCEdr{Tb^@qhqN^rTi z&b9?dlyWC-k+uJ^`7XcAge@D6Bwc;SFe!|AKSOxAt@qNn-j4oRdO^hu^O@de+pzF8V^vb^W!5a-2iMlI zzvvY86<_hq^MQb8)UlE~vm4VJ+cSSixU|S0-ZyDW;3YxR3tw#`oF|ES-FnS1Y4Voa zj4EoHDz&yR8UC;=Qkpc4d4D16{lbi2DjTj%Z`5=>GXKEw$$OSDuQ)$_@}3#}4W~S~ z9;g(Y*06uCoRFa8bl{_BY<}Qv@d;Z*B3N~jXUKn;!?>)$o~thO^?Ik*XI4*TP>JQ= z!<57NPW5-22$&A4EOKe6V22d)2kC zsul!_@H$+Qd%*C|-W3?`3LCZ` ziDE8h{?NN5dzajkA}RKQm!+@m7M!>~g*`)e!`|15ddrXSec<@u&{*2`M%OcR-}9iP z70~W4!6AFd8X&L_f2445#ZwE zdW0`QSGWBEgO-_c%k9S6EdoupBV6xzQ!<5(E(R)DFXMcCuw#zHE%v%`h7~)v2xgOcq@k3fc zsc!EVy<0^ON|!NjjQk~apz?ung0o9bSI2s#NB4Ku87TR=AE`^={a{hRap8&E+UWaC z7L0Eg!`zN|3x52(V!wo-xbmaj9Ti+Vgys2DGmQE?svIvZI<)z|MrQkxWZ@m{%&O_@ z-MZ^H6i>37x}}ck`v!+g$&>iJcHOx2*P=nt*YlQcrl2aJkz=EPiLOtu6_H@ zj*x#91q{VAZkXBYO|_PjIl!ZS8E-F|j_>BqkIEsP=i&-QzVm)R`gUN9Y~ z$>jgX32F_FIiDY2dfMOa$Zl{Ww=SkwhQFCNVfm7yvF8JgJ4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~t=R92; zLn`LHy>+&`H<01@$M+I}87hkUt`eti`vr9*IdUCs`|q&CC34f^B|n5kGEX^~O%pSV z`^S`M*1X~JnF`Nik21Xu&8?pI+2;A2=ih%{xjC=e>U;J1o%soAKv2XMq_1#5>4Cro z&Iryk-n-|x)v((!t#5EYFni1ClZUGw$X$Kr)7iWHK;y6Ih;^GY>^|1_?JoIz>N}89SU1ja)%*Rw5q`!#4{gvN@Y=+xG`U?c2UxS#ZgMm!#*M0$y!VjuO zyNQ06d!Vsl`mghi^A9(@WtbQ6zITCWp1_VS<_YDJ>{fAO*sXMCp~4qo$Hhr38?+9|aAo~(+{|gn z6d{wy$LbxV{~$l9mTSYkO?Q^-+@Bd$Ez@AZu5gaAqnP2*U}HMWJIB1eVZE>Y1m+W$ zB?|Z?mOT`Zak#h4If6N6aU+l^X~!@?*Zor=}o5A4IIflJ9u=~?R>_2z&Byf(XG}EQj4z} z%C9>6`XJ*MOQ*h{0l6{!dSI>V{5O-L4yk. + + This file is part of Privacy Browser . + + It is a modified version of `bug_report`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/bug_report_blue_dark.png b/app/src/main/assets/shared_images/bug_report_blue_dark.png deleted file mode 100644 index d2c16b47ecf4b42aae476994e25e820110cefb83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2064 zcmZvdc{tR27r=irwlS%ZB`J!iY>iuJtYd5;8eH2TX1YmapT(9kR}!*TBynviI~iS4 zmQcFH$THkP7^5*ph{kSur}w$f)B8T}d!FZ<^F8PL&-r}M_dF-j9&Nc7dI$;tz+P)B z^I!R%{6itaeA|J%)Wdgz1XF7#2w$Qh-U<9zG{nk{001YkKNKV%-*kpQN z#PCb_D?oU7INUGDpK$q7$Q5`n{_5jJ!$SZdl45Oc;uMklWx_MrDO|Se>k`2yQr)Gr z>==bY@l;TZKbJBDL3q_8o?81~cF%G-cJMKnD_>zS_9@`?+~PUY85c&X0E z(&yGoNun3TL{H>260iE)aZeEPi{SJbdbKgEA|J{2{mqKerLyo^tlY_k)v?ulBZ7}i zE}>74_1`AEVm}86lpVYnTC^r$j)lXd)-YXuG%dqn&1KYP^i4^#Gl6-}oHIz|tQ5a$ z-OvC;t!U=N+mG|-I96Iw@z1s_M(-}O8L@P)`1&4w$BF?5a!ylK9yB+!aBShOZP}e*1PpcpI_219}!%fm_ zKv5^JdC=vMWXMYMr)m03VjMV0>BZh-JIP`3u!3*veKmpT6T`itb-?|e6$7E0f4_N} zk<`+!rO)*qfAj;zBu0=)pLBjwv2tpI?aOp5lUUzyJx0!=M z45qvtG`}n8N&NadzWnYx)uy8RmXq%K!>?UrEUz6##n@UJZ`QR&2eFG4t9P|x;Xqq? zp%TH4iZv9DuDjJMJ^M;cLux}j1o6vv;jvtSRES(q!j6YiYx^nvXe$%Y)KeRr!ouK9 zijx!o&%}LVgvN`8j_95hxN+2XsZxm*T%bWdP61*WkME!i4muYSy;+w+o14_r!~0u#lHV#9s|wSlt@rjf38gNLd)w`&X&dm)jft+n?%E z2Q)Ik-;f@j6{dy7DYr#T&UVVFiZ{v3Hsl4Uo+qua+tou)o@cg@dM&UP+zjQlyr4Qz zVKLrcc?Pv01X;5vcr5QlPF@9j=gKI|yar@hLhp4oQSTx_XZrS}hbCSWeGoOHC;iSN zDnu&Kl*_}Ur7hS8$|aNXC8`{V9=Y3soAPvDcABTPS;f~Q+ePNk{yrTJ!|H|cVuP~N zVUeC&w`tJPB1VX`^5+J0oYw5Gul2^H+awfj&_qA@&cHbkkQDhi4OFS}8*ki9rR@v< z2zfoGZw3*<_{z7XM{b&_phWVUTd!mruZu&c#QrIaU$YIfdWzv2_#qgY^5}g;q(Uov zabipM|3LiYySEw9cy?b>{b-eP^+9M2xiea_|Kpt+#i1c@^vQ**G?1xEn;!>o5#(LYQ;Y*= z$4LI0=gXb~<(0A#ZTnKp)mlxm)$(^IMb+3ApL|7-k#*Ql)t^oJ$@fqH zRv(+z3~8Nt;WZ^g)4NyDz159dM{?wPW7Ppv=##ViwrWYK+07U@$=F+-aoz+D8uSbh z`c&JuzgY5R)QAs9+*Q&Wbj@zoPQ?(UT}kOIC~Rk?A}LHP|2v*|4+fmhPiQ91BPt2w z+8H&@!c7KS!G#pX_ai`WQitQ@xs7|I)YOCp4H&b*y{qvL92L;&?pYlpj~d_0)V+j# z8O)Zcy!>OhaCt*L0-IduSXFVo?IwCNfOnc^J)z&7BG@XZt)4p6BGz;(-z?5ry|UliQOn3g62lwKW{gnb73DdM(5;1kCJ77j>f~p zofbtd>{;MOdb<{i!tf<2sZqg^#SoqTH~6w;$>N#G`k_2fPNoR-dXRB=9W1jK75HbW zdWc-fQ1%!mm@n?1bEpT# zg*95f)!uKDH7Qqn;9#U&eg}`|4JQt)IEJzF{&(-O=Fodj diff --git a/app/src/main/assets/shared_images/bug_report_blue_light.png b/app/src/main/assets/shared_images/bug_report_blue_light.png deleted file mode 100644 index 76d4c000a7961bb8728f64c8df72fa0398817fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 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 diff --git a/app/src/main/assets/shared_images/camera_enhance.svg b/app/src/main/assets/shared_images/camera_enhance.svg new file mode 100644 index 00000000..28d40b24 --- /dev/null +++ b/app/src/main/assets/shared_images/camera_enhance.svg @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/camera_enhance_dark.png b/app/src/main/assets/shared_images/camera_enhance_dark.png deleted file mode 100644 index 81c14c3b86ba5e1ee85f4eb27514eabd1ec4c6ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2553 zcmZuzc{tPy7yiwHu}4TWvW%r}_9aV0WSBvcs0lF>Q`Tl~_ANuM5{i+K5Z97P88ya| z<@Z?oL- z$EOukYMv>cUhkhM2y5M#MAt_OCT5@NTG=gHB__|>BzD9uksH>N!|ZkP2ZBtB-Tsjr zIJU$5)eo$Zp7dUU2CJO>Vgs3ES=-9+&g?p+)p}u zjAf|03|}_DjW_YJiq_fy_c?W*dXC8-Qa%R#BX3Q}LLPFx3@0R7Gvwo!p2CARSVcv*p$jL(3ApxVKe_#97-SH z8p1kd7p7Q-<{Xih_kx!ZHteh*5rR+~l;9yFglwu6h+zdxu(Sf@^hFu^1W^qvS0`H5@}opuF0 zJp6rcrdvdr=rGjQaBj|8G*lcE+yhDAf;HdtZL3U?;oL`W)w4=eeh&390^+WNJPQ@N zCeU4ew>|}_rPLm;hG{S zK=EwZ<=Mqw>me+C8+VV-5)5?f>I=|}knrL9V+7B9Gi$~? z>E1Rmtc(iy>|V+Xg1Awh0XmigI)~TtQXm^pS?K(&4GWmRc>8S$$a^EB1!$aTi&~55 zrZ&TceZ50P!L;-_Viie-35YjG-Z6Fk~84G=2nC1SG*m|sH8eq&H)Ed^U^n*+D1*urGLN%+qNO-f{er3J36}&cTP#%z z(HdV`_1KdxDX}iOCxlTDl`vN@4G~2=&vo4?E2^Qv@!O3raB2Si7T4Q!4&`8vF^X! zzn<>hLqm}uetW`V$h{2mc@cABc%_`(xJAu^d13hS3*LQ~mbm{OVVxkpAjDli>IHu_Ay;tu`5=wA|1o9W8i~gpTsGw%<@)1^pNzi5IhlDXf^n_F{0Kw%S%@9# z)1vHsG<69Y%klSfGg+^kC5L8ti7a!1$rDp_#KNM+gKeLUPp{m>?m-@BQGc!PGdYNS zc&Zv_uDgtZJml+BBN1DPhYTX^3XDkT9zj1Uf-{Y~BvG9p68E;fy~4vx1QLS3X zubUCkybIdMV=l9>aAQKbOCBAtI5-c(#k%-NwU-%z@4j@b%cUtd7cxEAbhZ9V5HG^y z<&DaqFmVQQ87HbrYS8&Z<%(`dW0lZ_8Sh=5OvlindL1@5tNKx;u8-aqJ5P#NNpHa_ z;1L;B)igEw8;ik7hj35DF^CigaHUu^`>q(|T{8kej6TO}g@8KC}Y&bf8>9+G|@Gj9}WW4)Wh-5dVV zh$s1Nz?9>paJFvknwc5Jr+2Bub*99>#sHvJ_t|1{^49isTQCDx0&%BJVsE|HJawD+ zxID@pc#artZ`|~GJwm^#!0>fUOs6>pL6t*gci$R zYFMI}LO8JeE6??04mLr?GP2jVcKiYFLvDloB}tnT<8XkI#^0;OvASb)>;Q=~E|7PS zwy(vS>r#%58O|gHt$g&`kDCuK7sIn3;U1Cn*xe(V^$50A+hG7Pzr7GH?2&d_96sVSY;mF7no>EJpX+-#x^Pd0JuQmM5oCZ-rg{L zg!w~@Cr_BamJ-mlUldY5+X0qGl#_)yjXB&hQlbb&ReWUW9H|HnXw+Dxd-QIFah=T$ z@mc8C0!{8wd4r9Em0e9YV6{W`ytsw)?Zd2ORib2(uef*H{LvhrgFndb9J5dxf(}Dc zqZ3=PR^K4?9B_ITxiT0IGX8{`C=Ni2{{KF_;cq_Vv+S#Xp;qZ4wid0Fu(Gf$dX(*ZWwG2fSoe%uF%z#j_ZK}Uv=-0ZffJqY zWSUgmJv;&l$YnC!|LtTY=o>p6pzHSHlIVyuXiN(=%pPrdRjHT3xx>&J_e~8+H+$li sG$t<^|5U^vtEtrgAFa**#Oax?p>Ot69SA+)u1y1Q7R diff --git a/app/src/main/assets/shared_images/camera_enhance_light.png b/app/src/main/assets/shared_images/camera_enhance_light.png deleted file mode 100644 index f4afd242be81c112c88abb88f3f35adb8cf4adac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2234 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 E2gy_9`~Uy| diff --git a/app/src/main/assets/shared_images/chrome_reader_mode.svg b/app/src/main/assets/shared_images/chrome_reader_mode.svg new file mode 100644 index 00000000..28b7fa65 --- /dev/null +++ b/app/src/main/assets/shared_images/chrome_reader_mode.svg @@ -0,0 +1,28 @@ + + + + + + diff --git a/app/src/main/assets/shared_images/chrome_reader_mode_blue_dark.png b/app/src/main/assets/shared_images/chrome_reader_mode_blue_dark.png deleted file mode 100644 index 92fca842b6b7852f994e885ce0679b3df325a565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK22(+1@7BgYyH`leM)TS8Fq*5R*?C#IHf4P==IbKT?q^mZ*|{1*Su$@ zi+;;A^*hWjPU^HfGG2M+)UCa+b(xiJ+D*O?p}9wQPLyw-?pge^ZWZ&=Rp(o#@z)Bp zEbe8Pqs;J}M1zvKf1$ zzR0jgF3DCh`o^$>#loH8oM1yS%L5rk5c8v{!2zAPaNX}4Liq)N59J=3)v9v&SPSh zI(@hD>Wi3*#WE>k>(f6j6Jlgp;r9I0x9o(l_Zmf<2(@7EKF&^Pcz1mMj8joS4NEqb zZoUEZO3KIm6{otq5iUpa1UfV3!}A2=+gJCfYkCwf-5&LY$Nz}V-Lj2uTg2M$vj@~p zs5;&rd-C4@^FAtjKRmkNw7EBDx#K;Zhcnoi1G@K}ER%VnJ8Q)qPCb6zJ>_4Y*b4qN zyxciKS~xO)f34DANe34f)3`HvDo;GG-t&!`F5ytU@Za85HB--eoanE;8M&f<`j)Z> z#SMRxKfYG_^!Y}*li!==JF=#;=NcL`ysJsh_FApqdE)KHbFF7)-qyL{TotS zVs|~aU2S&p#*5g%$=_X5(qx#GjO%AbW*1k#+qK0+Zreu>{y+1wZRgZwWxZe286&cJ zv(hDji7)?KYaV+vu_LGJ)%vWW*Z1q5zTO{Y+}|Y!DnMXBggjmS KT-G@yGywns!TrYo diff --git a/app/src/main/assets/shared_images/chrome_reader_mode_blue_guide_dark.png b/app/src/main/assets/shared_images/chrome_reader_mode_blue_guide_dark.png deleted file mode 100644 index 9e0c4f805086a54d7608c3f5e8a4ace12256af1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKvRs21#J;}zM?b+6`jS~M%a&}@^!=kHD1|L2vxJ@-cK{P*HHGiBvw z z|NZl$dCW6r?JYfW>!s?!Y+bxNkF0(y-^?kZ(tp?w}ydW+v`Khb7-@li6cwKtK%dE#o6=LP@ z#7H!CudRBTwS1~9#GXxG)IUz&e>-=^QupxZ{eQ)xZ+;X?c>86N#gA%7&xL=(mQTHC ze4z2xseeHdzn$;AeJ{!{x5i(l$5zShJcIDfACiS1zEAqN@zO8ujiMJBoECZQ`@A5d z^JPUzWlkc;!a46PG@{b1M56cUZ!<9TZJY4kVez8S^1>b9<@dS?h4E`#e?qSp)=w_9i(#Z?ipK zrg(AEl1BCess}8Y3i=r4C^J0g05gvt=uptT-SKySz=Ua^Z|F0+YT+YPc}Ti zq33bBvL?8bLCMF;vS~isvnFqZLWqa^8wIajb4rVn0{TRC=B&y$(;1XL{m`8kcof6w zNWMTY^?nr=oY=Bd@b}6qdwi}-bswJhFtO#r=d#%wpI&4*Lo>G2yg$`x zcaC9FQ;ymGi2*9X6?-r5>SMgK_I!=*%f~TlPK8Z*cUI2-vFh@xb?=#%L}%-JMoIn% z&~Up@{&Ih|_^#YbrVY;yt^BInJ2&h?dh=W!)*nU6H*5CoEXdk>+ikDyoB7c`%ja2D zT};XMva;xSIbnA7q_bP)=I&f&dAjV@j`ii$^Je@mEV}>qTcq(^UPt3e^QM^mtXDtk zu*UP(T_1aoUnSW}fB&4{nVfxC4pe@?0MGgQi;GWJ?rYum1|;O^>gTe~DWM4fQ#kiJ diff --git a/app/src/main/assets/shared_images/chrome_reader_mode_blue_light.png b/app/src/main/assets/shared_images/chrome_reader_mode_blue_light.png deleted file mode 100644 index 6bbac5902fecb709bd4aee381bb886ae1bd34f85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKPxoULe&FPKZ;+w`5 zD9&gc}k2xS0RCf)0-X3Z*cxYh6T z|KeWh<~R4t8LYE=ZC}gIope*sQ<&Mm%Vv$&uQd@m^LBi@`qBQ^&4ue3wA!EbpZcTh z`ILPo-_D)7m!sFF{e67aOeb%ffnHwr2NVExzB;ci&#xWncQW=JEL} zr<}I$y=HBtdhgHMgin4apY2}jBga@KYhzoy{Kh^dySMq`Z)I8QRZ2T&*f6aTy=D6G zS-$$y(Ct}Su0{;T^=7v#Cv0zeJ@d(@FVDVZOgpSluUD_L)uu8x|I(Cn>+?4c<27KFRxZSzj5LT_oOyChUMty=`jo6$vIiGr%w85ns?+LJw}x+v()V+ zzVcK)6cLbNWN~LWDCkg7!{IYy-MP6RH~u#A;5HX~?cVlxmkcAO>)tV|q!jM8U1z}r z)yN_sBhMtPwe@FY@qP1GmS#npm+H(5QEFfTa?9?srG4p9!s?_q&ilXj%OoF}wz(pd z$>YSM{T0VVF%)7AmK{&7AC&z$>*S|-sVd7>7pJ?~9&Uc|J@I2-rs-B2$%d19_rJSD zpV?vif4=DJ7w@lpdZKw?>HSTz?3J&-%~NC6m{~vbt;LDxz}B>^N~4DCv&Y^~+IPN4 z;mL`uC4XNF|CMKa_jYmeP2U!qQZB1|xv|$7!o*&S$NVyxJ#m8ccmF)I*Y``J?|!yB zaH`~K>C8Hre<3GM@~@rwa`9fX7q!Y6iQmF1lRh;p(QmU9Eh=2MC9W=zd-L|H+$}HX z9{7K5-{mY{`@dbY_iDa8b>WzE*uTP?(rf?zyL9#Q@pbvzK00jwEmybC@ant`hmB;* zGS@FTuIhXD{St{TQP29BU%FG~Prp5P^Z&S4nJ zsK?eycBk{y1}!+f?4AnLzi*GBZADf zdx9ZRX?ADM*4NCPJhx-VmY4Zi47tx6jDz_%9(O-*jQN95z#K-AbcUmn4uxzW=JVWy z+uyD*o0QBv$sncl=KURj2 zEyv&2Y6U;;PrhZt>~e(vz|(uenI^Z_HuHDCXNr4e(sS(lrwd&N8I&G*KWNr_oZ<7{ z{fM};_UwMff0JjHGsH9U=T>R;KFWSDvExT}Msuq_%iDK9G(MbcV-K#M&)BbP^<%>! z<3_=c>>orv*c6l+Z(g}LzVUg3y3(WVsnYs;SlGT^#?s)aa#|N(I@~k|&lkE>r o4R;Msjg;W^WwOZW+V^GrpJpD$Ppi7xfw_;t)78&qol`;+06zz*IRF3v diff --git a/app/src/main/assets/shared_images/chrome_reader_mode_light.png b/app/src/main/assets/shared_images/chrome_reader_mode_light.png deleted file mode 100644 index 648b97ece84b0efabdfb45595553a4dc3f79c4f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKc_ z&NEDx4|qN}F|TaN++Un)7}ht6ANU?spTRYQ{aQom>d9N#Y}ov!PcJAaK9I$(mXW)@ zj`4c8wq?U_*%=c|BkpRidEOWE`hd!syI1c_3;pZ9U%WB+K=gxv{ptbF*D|Fy@-OXO zTw7Md60_ps#I`IR3oe~$W@fUCYK{2^4tn`!?zq;FETSjKZ}P^VyZgVrB}^^4ZOWz7e%N8PUUJ(|^LVpFjyll^UUy2hH! z%YqMVH^gj~=DjM!`~SkQ1kEcOdaWD7#uBZ`kR* zrgx@tCTwJ$ys<3oeB;SOReUKTJ2-3J9yqe*-&fWh2hHw3&E3V5W5gHp?y5<_D)VLE r{xH}v<=?OfvVYx+lnR#w)HB-c-QT3t^nVL5lQ4L?`njxgN@xNA`rvDF diff --git a/app/src/main/assets/shared_images/clear_and_exit.svg b/app/src/main/assets/shared_images/clear_and_exit.svg new file mode 100644 index 00000000..488d7614 --- /dev/null +++ b/app/src/main/assets/shared_images/clear_and_exit.svg @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/clear_and_exit_dark.png b/app/src/main/assets/shared_images/clear_and_exit_dark.png deleted file mode 100644 index e682af777cdd739673198e5c0f77e19893f5275e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1358 zcmZ8he>Br;82|3Ojaf5MBE}R-Q|6}RYB5F3ieVZ`k(rXRGQQpHvT|g%a@$D~tvmPX z`jH=ra;sH-bv2pp>J%-Fb#j)D#kWgs?!^5%_n&)u&UxPFeSVzxdEWQ^JkL+8h)_$s z10DbXOGa35G$KU{j59;l?ttVzL}0SEGT1nTggCAk(JlC4@mT=i_F;ihEVuVY#JF4# z5+{hsb=BIjP9!tA2L32P3>SF{4v5!kXYT6IEW!pdgWGFcs zNbKBt3wNSsOdVJ2(pBfN-P(HHXu~621RVN%QM*?uxnM^4h+j^!O>f zugy9l?MCYv=Zf65Ijb{#<-I#{+NXqR?J|yCj!xH2lPOn?sPBrz-;$E(XgDQzgmHYr z9lJQ7>F^p3ClPpx9s&AzZOf!-k*T#icH&LF1pue zZ5iAL$BT*4lJP1up~9R9at7Ya9n=mAj{1Le)@mGv5=;EUmQ3keNVG00?@P>e??l~1 zc3JNg>Ex*H%WyES9MAHzt>jbaZ`q=*I-oEHg|7jZMqm{Z`CoEV%3%@{t2ieo1D8a$ zQ2zIyKe0vUrilo@zPZ56c_=e_TJ{cVmIUbG#uW!xjSZVU?WDgUkaj&LlErh#L0EA7S_ zefMgTWa)pZ`t?fq>{SZT431G=?8!#=o-QlS_NgVgX1de?sp=@uwvsj!uDUHlasAtl zxR2vmz8ut((GG^s<|^=F+96{l8DzE|HdcZcxsTyrbK9}B2sN`a^uWWVgp|`Gxgnbh z{5v(767aHdY~u{IW;;aK2mI)QI8rX(oZ;hMONwmphSP8@%C-{mxcJ znq9{9`9=4@9fk71gelV8##rN;TB~0h-yB6>ZUb4c+WEB=5RPClC(D^^WJf#02Z)*AyY5ZQlhRU?9es`qtZeq#Q zRVnI@$&Byq$6PbeuMZQ5!#^+M2W$w5pA!?kYbhNGNE>joo9e-}Mb#dC@1LQ}VzF_k zJTW0!Ozqd3#ugXo0HxjrrZg{iL^{m!zO&Q*R|Ec{^2X<;%PrSFNz1>I5KCL3i_hke z$@4a|j!V*3C1N5jt5-h@+OEE7bAU%ynF@MFZj;k=4Pa=0#u~rJalR8+Xp=TsYtJV) w1A7Leo0{&?Ck?Z)NowW8;$qj8-%{!fIS5P7UR6tRMP?ts2#E-8+M0CgUjl1gU;qFB diff --git a/app/src/main/assets/shared_images/clear_and_exit_light.png b/app/src/main/assets/shared_images/clear_and_exit_light.png deleted file mode 100644 index b9fdd99905d60181ee002636bcf400e184b2f544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6E>@N{tu zshIQju5Y(YsK~L8|G#XRq_Bfym&Bwq9kY59geK^ixR@w*a0op*75hl(ok{nbKRk{; z`y39uX_?SFqjiG#9S+VUu{;wkj>?;U#N^VGmCmzGiZ}%4m@i)vE7$_G?4d!SsW> z1l-G_#0|1Ia@e=A=KVMPkiDy@>aFjCngeClLE@K=On7RJoQye-#bk|Ir~g` zQS(~!iIK|~ES6(IQ!+XB%zxY_((vgFvv@;(;D*=o6HLE1<}+=Jmizrv|3T~n zsSicXw`Vi&i~0L+HQR6B3xW%Hx(~?mfb>}UI4xk9k}CLPZjWLB!>P%pK(U#dfG*Lv zE+h$(%H{mg+yauCZUU6DSK)NLAI4P9cs@!z@kQ{etH+*8zX@J1v5w)n*{ucs?hW%Z z>-aCsC{nr5?eup=Kg(;N5kHIsnOG0ZFI9YT+rClg_^p*GvWzv+febZKjDF0|MHuR@ z&El`(_>dO+*^%)>%A%ha_NOz-Kd9FH5jsns^|0F6^VTOUemYy1iDYB5~xk%s?ghb{u?hI1+p%%iH#Gy^W#(^>jIs~+5B7%o}0|&MH+%i zcIs^?{rr2IP{gL%1LBOgb&Y=pZt4!1uX*Fir-Bts8(wn7YsfM_dhv-(@aFrUrgM2V zZIwP;ZKuI-&5wD#$sP5m&)HQR9gE-IK2j^YBYw-_e-^-a(aRT+6lzjA%g(AWZC$>o zwJyuaSwJgw4DabwEf!G81!~`Tq-yt%ivlY7U^WNCANeL7u=)r_hT4>#YX64!MRz7J zJ(zNm!~1RWxm+84D)p@W=9TLhb&iItDYHl+~`A9hH=qM`Jey% zALOqRH}j}bZ+ySDo1>8H2m9~pGi!Q|`^0fa>}fvGf5SiS{_)U+`olZVXXSO@mu2h= zW=&$OFmw;J{nqfR@}KFd^f3DwVan)vTj|^%cE7Za=>DX#d%yyT!PC{xWt~$(699#d B91#Ej diff --git a/app/src/main/assets/shared_images/close.svg b/app/src/main/assets/shared_images/close.svg new file mode 100644 index 00000000..29ecb3fe --- /dev/null +++ b/app/src/main/assets/shared_images/close.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/close_dark.png b/app/src/main/assets/shared_images/close_dark.png deleted file mode 100644 index 993e4410f58a39b5eae2c1ee5e4433cb9d4fba82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK?q>;u;`519M2^i_}JcvxNYD{yXmIX%9$iQol$RPsL`_ByXx*$*Y4Z- z_SKwhcdr~vRiG{CV1?34otH+xWfptv@~}E@*UowUN4)A@?_UN{67p{T=g^74`|+x;fOOM*)rX+X_@T z_wv8;2Xc?*o?4iBU)wRaX5P&Ap*_{-`efviogk&x9`uFHav! zZ@xX+GCfM4bZ(N~=JSSKOS+eQegjPP7~sPz{<=*Dd~<#otOm(> My85}Sb4q9e0G|bQyZ`_I diff --git a/app/src/main/assets/shared_images/close_light.png b/app/src/main/assets/shared_images/close_light.png deleted file mode 100644 index 0f1086a5502f1d2c7e0f64beba5116ffe7c658d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l&GB?` z45^s&_O5r{Z3h9@i{jR^C#W;c=~Z8x5^6Z1_XzXOhBk(#l+E^`SHCmN>+;>J&6^`R z31~VxSa5CilG|^bc}gxnp11J0@JH`U_MY}?^HW=PFX8vBSE-#}Gwo&0pa1dpH%8r_L$A@mI#*jkNacZ#$JE-HTTcN<2$^6t^TF1cF5ZCt+xFo+qg-VOvmgsl39A{ zgO+hf>LppJPg{2Y$?T>1g<9{aJ?bG5;e&repGFf?0a(JKH%V z>Nm|4G}tF>tdvlb?&fyjhhHyH;oR4fjE~tbDl;A9UzWx+XZ@dSzg<-E!!XJky_X9r|w{|srWZo_1`0HbQntVb-{$~CL%Xh2( z^WG17&m_53YCZ>3maUy2%cblZC5{E(f4DrjvEpOr0mXkZdp2mV|MQ7iar6J5ETU08 z@pfWBRYiY38Fnf($UUCk@5|EnRc8MlHbD!Mq(7gcTppY_@$q!FP$RSPG5z(vEW&4H z_S-NE`aDSd^GV0WV8Zf`r;P;{#04TY}YM8&|Fxf2t*BN1 zv35zkobKFyg;zhG<*=+gZtkw!VYkmx>Y&i$*?T!Q_2hq3ipZ+jEb6%J. + + This file is part of Privacy Browser . + + This is a modified version of `cookie`, which was created by Google. + It is released under the Apache License 2.0 and can be downloaded from Material Design Icons. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/cookie_blue_dark.png b/app/src/main/assets/shared_images/cookie_blue_dark.png deleted file mode 100644 index e89c2fd17ae3cbe6198fffb01a3deb10912c6608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3715 zcmZ`+c{J30)c?&GjIoaOk?dQ-q{ULij3rwkYsfMv$}+MIMq`-lOGGKV7AYYW*-cr? zt}xaa46=)d8T;!w@4xT+J?DNu=iYPwx%YF=J@=DfVP?n)I|Ty(fYaDW-|_?r{~46! zPgG9zjP&mloR*)6uZV(n7a0kF* zv50$q-hu9D|2qgwfM?E{)+qqs0*v)h)}gtpc{qRTg|PMlx}&iKIu5#Wzv>^MG5<<| zdnu;5Ga)lG8V^qMUPrWl`TMB#!PpDxm!?9e=`R_1)mEm8vT1h*uOoWf%9)~Cm0M?D zyWf_}dLU{D@)iX zR{4j6h4{_&{{ofCw2yonNqa%`72ykkm1(9(C4p%-o-I(flnOiYYWvYuPS*mYm~uk| z)sb8|3{(9}c%cR^F~|0m8*FPrx6Pg?GJC~tHLrJ6_t+4fen{#BBum+#<*6~u^i|x} zVm8?Uz(&=iBRL9%Y$&fYBg9B9i$BjVSx@mv=n06AM&?NAn7FDEUSvz>mfLzA+`x4` z=)p@H&uM`!SSO@UoaI`$2$a8#Ouw63T?-)v9>v6S4G1Ccn%lT}^>(P_Vx(!@MCiNt zFjQ*-I9(9wezy5^%fSWaE@HB2JnVw=^An2gCMlX7?-36Lsf_^QMGl-LoewGX)Y1K0 zI3(>ddLcl8M-=3-W8D_Fa3meYf3^~9S){KEaEjmr-%IWyAQ*PdEYp;J=KkkD&#^N2 z35qSfbCxo{S#0$j`+9(5zWMpMYhGZl>vK9KK4CD@9D2?bY78U{=j*W6Fp-i~W<;hW z{6XEO+YK2~6b|X?>D%B{zc#CL6A~7EK+SccrY?y&5f9_I1XMe+l?Z0Ja|N=~j|AafL3A=6fcQ~qoc&)`Z#PPKGgTlr9o%IB;8WSfQE0wKxAgHf!^6R#w9YR^n8 zBvF9BPC$aSA7^Lt@U$tZkNe9xO(8;x38k{J3p?=sMnVRxVb4e{jGXd7>nYBbAdnphwm(8l1D6*6 zy`0dMnc}piCi>iQYA%!U{f#3qL320r3p0Gcpt;26J+cLz@ozMXTqycceXRgPCI@~q z43GFVr6}@i9}D%z0GDf{X-?>c!ZNr<)6LJ~d-SC|ZZO$6y$rTgyXU~s;P7SHT`-GK zBN~lEHYgO{o(O2r8RuQv#QLU?eqD6KMn_FXxL$AYeso*!mWCQfs~mo5b{>`TJ1&pV zWC#3(`!;bz6&V2Ai)*8R-|y)z9wi5eMb}b}$|9Rj3C9;GA?@jvgMXq8O{LRFJ&1Zf zc?d%?VL>0=&$1MAo1=3dr1U%8@wf5oz`4gV;5fFhyVN&KI)gUdKLgc2YENFp$$6)0 z{%Zps2sRNIe~eW+o~#wO;w`HUt~ScLPBajzlT0gpxjo&I*M*-O%JKvypW8mFWy+9@ zKP);*T|Sz16Y4czy^(3LEkn4ob}_fQ!LlsvUx%*FKoKO5;|w(*`nF4N4=cg$(}>V} zi*O1#JfcNrUdXq6XGz~s`eOtrUTc8z;-HCdp~9o$+!<8q><0uWGdAQ2U7q0opmyYm z?eL9cUEeJ=AZ~)3FA%w6yvfI-dB-Q+%VU0S5=k2E{=*--#!POtnY$zdN5q*k-dlQGgzK79URf>6e214d~PU)1!QCown%JVkcCCn=n=~Ua3Y@1 zt?afHkXrOICSp1dGE6|*=#u<}$zVSsbfbd{q4U5*Ky-a#wdaz6!Se_Ag#@F$poO=W zRIDG?i?o!E2W(4Vlt^u8Sk#14>V+*@|Cay1@*ou4x8JnXf6Lb+0Z91QclLe69<`Xrk-+0682ywQ!gE4y}P@lIX3=^>k<2REnCEh~xxJ zY6v7{!UsZotUAbUoF?~jmTlvup-`2~RC!p&%y)fnKc^x-$GlUpA-(c8d9tr#L*&QO zJIDM5cTWx0&Oc94=AT$WkVenID=3Z6q9po^8BxlEsybC818z?$)#B<$xF9+E-Z>c2 z6%(`IEf7EyRo?wx)P&Wev6s8$nliwJECPE`Kmzakd?h=`-ypnz0>xk0&pXm^i`d!O zwm+vi>~JWGX>_qTDjwWIB@lo_y^GHJL0{2IA_ha}co!#Jk}8T0QW) zF8*(JqD|zOJx&i=T7v@Yh&Hq2S0Ozp?j83Rp}_!<@@|4X9^dvskN*G(XJtDrFN25{ zn3Ya0SImOF{+#A(R$F=Fb$A^#tpCoRhliujmYv3$Qp?NGIG%?fC7zjIp7>($QkY*t zRacpUK}eLpEFi4-d0kl9iI)O9Zwr27S>R|j{u1YC5(H6^dZoi+F*sd1Sfbb)a)BQ& zm{m|7IL>nB>FfEoezRu!NkF^jRQ}LO!awDTYBg1&?}dX^sWMda$9J>p1gG?a%vg2G z2khEh$Je~MjfYC=U)oq7FR9IYd|`9FHZaCT%|t{#jfRfYR=rX7^D#8b%ig{E^}PJ6 z8$evO67B{tqCE4{K${0MzFxz-*N{>xz@srmMs@bOyWFOQ@&4g(u!D@YehuC$<Xif*Uv5aRRGVa+$5?VW0uQ)cn8Lv3k^_@M~u$i;4gPU?k1yV^Fp^Sc7 zJTPsEiRq;c-_M+4adjyit#w}~6*YAn_^*0d*hgsyXf;FB(DX10DoI;_iT)60h{~t+ z6b0UQ_a$hpdnWTNaWi6pJ^{S?o&`@O7>>jgzcaF_<0F;g+n^0cgvbLy-g-V4C+$=E zA4%15k41OSuE%`td3{IkON53b%{L~snAEGm@$c!pBcH&pNNq^r zAL9Pl^Q1)^*M=j2Hd)6PV01G|{7jG>okjT41~C&hI{((7Mht&?{~W=797l z?IMbmYfh$2*Dydt0*gF`y=?0+{7|8B-s^g^zoH~sjLC(6+7Oo4L*bMTE$MhCXSs`o zM}Ws7A8u}64!*C4DPD}O$kwm(oMeQksB1beC!|kr1_dLUGR4NfA3A8Pj$Wb z8eaB0`>?owBix#sXmM+ZGPT*o69{zyfRnlXiacMP@<{wGE;XK-vd2V{dNeU7z2Rcw zwjAxVTJYEi3Xm8tS^|%rr8VmXneG1O1mPc;IoT|?Ih&*4qM+mqqwNoJG!fvZvxmKK z=S}$jnnWx%kEhnfK{98;rtBk>s?!oz?gr(dx+kYNi&W)s>u<2Bq_>}(JKw%%N%}Xe zX`k9)hF2B!51bzL4NMmV0BY)LWoxweuvI^c|4s5@<_{DvH}~l!TzAD&t-AOopf|0^ zB$;NL{scs=Rf#rVksrORvP{ON+1tbG-zXXa6?zG8x7I{f?_oty*)Mi*JxK58_AEi-ZRy~Tzu@)ifT%ep8FWo^@82&Jw!$OA6__urIMe- z3$}yTTyLKjn@U!nmoNi|rjU$5X1oywC@$T8!*5CdElVe6;r~}xortZ2`D2hp)U@_~ TqO8)1U<8Z}%=F83U8Da8T%7g= diff --git a/app/src/main/assets/shared_images/cookie_blue_light.png b/app/src/main/assets/shared_images/cookie_blue_light.png deleted file mode 100644 index a4d5d409cd29b644a8ca0f04e24f1cc744ae3899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3625 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 diff --git a/app/src/main/assets/shared_images/cookie_dark.png b/app/src/main/assets/shared_images/cookie_dark.png deleted file mode 100644 index 6c37be28d7407b51f26e46d4036eb62840ba1e31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2195 zcmV;E2yFL>P)2p+u!`)@EtgNX031jXZD_1v-S*BDwRs5QmIrbl}e>jsZ=VJ zN~Kb%R4SD*#Y#Kig{0R3>w!xLKkowG4y*u{18*99{tGw&++}7zD&uWsQ6!x!>1s(g zOL|b!t7^|ZlFljpT`Dt>G$CoHq?aNDor^D&{!U|$r1K^1kaXBd)S2un{r$!kNvkA% zQ_^Gy!k%Ta^!FS)B(0Qmo8q3UtttI|yJSge2WBH_GjJzxNoimDz|aURX)W*r;KQYT z=@UaCu%xZP-GsSn#gU?OKuOCa-2wcRDsCqf>%o#P1bzWrUCM`XpoqYdRs#A?l*&}(0+%A;&YO&TEy0d!FAr$WySeW zSlUbFIfc7G6MGj*I^tk+Hg#EXHj+N!(6DE;NY9JCPhJK$u0q;a4BNm>a! z1-#9v%4KHu?+8DZ0snOJ0T|8sau+@L8~BL}a6#sBy~0&sNf!WL@~jis6j`pWQsLi& zze-3n_vBNNB}bh&x2zr8U^z-{6&1GMYA~v zct9aRU{MCwJwV}Xl^J{*xUrOR&qny1V_maZ2keuyaiNPOZ36ZIYdZ8LhGGJ{4ErTb z0FQapwFuL|{e&RK0pMj|6)-_~R$tHX^xT=8GP5_AFzhAp_kb^Z)YVr?&7qTxN;(&K z5oom9Gp>{p*yDD#kt*)c;vw({9O|fagonWIcc`P%5lI3|S_)j#vREg1Rl`n;z{qJy zdnA?bIFhbt8PzG7S2c>O>z2f>rUCf`zHhOfI~y}QNQhdEJ8M%4rwY8T;dQb3QL*Lv zG>}UYI0;FAYB*SUYh?WwMGQ>(Hjw*soH~Kj9=x*Qbtfb1Z(FX91G%IGid+Kc$gAq> zKyGV_(-J98-SkyFA#QMe*xGHY)kMd$3Si-xuRt;ZR~@jua^kz%tOuu`JBpp^i}@ceL!0$a1gYA@FY;>KGMbciM@K zmL+!{4}lK>jRqY(AZN7fufQK8?Y%~_z-D%a;a`#QBIkAzyUZ*(SmL!@_(P|9hMk<- zNw~DB+Z%6^4igTC>@(BA#2|>#2!%QKe%f`WC(Z2gw$9Ck=Ys#;j&%(yxuRumZRy#A z&jXIr%|0E&#!=w*G5q(+YRWO-`@n{x8&3+3P~#@J)gN@ZffD*_RPLD<(Q;5bg7LS^4aOVDL;wuZ+AxjnzFSE zEjruzMbfVc&%Q1Zu-?pCt(i(%4?Ic6V}%xBkC}a}i;BAxcnu*=-Q~3DpqWL54<$Vg zv^oo-BPM~X%D$`xX|&dD`xgfU}uLWQVz;^ z+0Bc1Za1^tT^h*oZqg1y{!UFp56x=tmn)0M~T++?`3bt#{4rIAPl4 zdBBtbw?>q^&C!Q8Oaj;D61NDFE|+w|IY_X*h5a4Qwwv-7g~PG?kEGR-o^o!$?#Cl78>pkjE5y=#>gF@fCyLZ}SmDaSP{d*-Z6Tzo6gk(R15N{%}mG;Gf zJ;0U2Ans5iX|trGCGV|~oRIX{((N}ANLnuGTMBR24LehkZqcYL)(;bs&QllxpDZfj z+?-YzAogY4P!0v5w@Z4WsHA}>B;BNNPIAQ?NtY?~oEI~SdQ#F|lHOPP`?qB%rb#g< zoanipa45(Jfe!)aJ5~P=;19sVgP%hlFM^d|WCfm$q$PwM=+FLK3cQ1mqrH-lI&?N) z`&GjJQ?Cquf0nQp#xsM@r_JoYIsLCxDwRs5QmIrbl}e>jsZ=VJN~Kb%R4Nr`{s+xf VA8X?BxT^pF002ovPDHLkV1mMSC|Cdh diff --git a/app/src/main/assets/shared_images/cookie_light.png b/app/src/main/assets/shared_images/cookie_light.png deleted file mode 100644 index 3967829b3d33cb87ec886a4cd4b608a887b786c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2366 zcmV-E3BmS>P)2!*ZH$SD|G50&hP%e7F&g8BTa`9l;@XX>38;VuXtgd3RcTd*VGv=y@sINj ze16Q#_wN4Q_s%alnJ<&~?m6$C`|i8%-gD0bMNt$*Q4~c{6h%=KMNt$*Q4~c{6h%>* zjh55~1f&D#1P%fYuKwN+*rh6?tA95EZv&44j{toMY*jqa0n7mI0Nw>EK)<29jx-9T zAdCVo2L1|c!QA14$^B8UKryBjm<}ueHsZ(Wwek(}cu;aiE7HX;#=q0+<>*M)q-3BS zmE9e8RvaX2|G6HxDKb60f>=Q*TNPtMF zMWa)UYoet1azZyS&QNz7@~Ro40sP+3mQr#CcHvor$u*WX`~>N?eK&wlE$t}{V}bwU zr?M-+J`T40!;>AgQuqMU(63@Q;csE*ePk4F%S)c@sHO0)vLP?vSYWQl@;*s?ep3>v z0ki}6;&6XK=Pv@L`ZH%M zXBiyZh3rDw7{HF)Fo!Vj-2K3{mNp$hnAboX=|-lin{o$IE3lk!mA4-Fk)cg($d<3v zj<1)$06Q68OYWIY_=;PO%=2fV1-LtcO}27*#_K2yPZOu&J^+qtV9Qu!wJ^1lhm*G& z)@XqkMVP&MLrDerEiwq(pKZ&*#{;(l>mu4>D_>gGbWXX1^c7k}Ns7;TfH@w^QX=7N z9-sqR^l9@{UYSTbL+PsrI01EjA@S7!PV`ic5*c4RgHEzMZ$0ow;0@q&Br``Rk_ckF zAJcNr(+0<`23`UFM2=z+Ixvs;*$muJJ$Eo#ki7$4hUJz;-UTKOQFqaqf|>C>z_g5I z?+q+5EWa%B2|3ASbS~MAu3(;iWpA`67)s7Jtjq22F$g@!;MnJZ=M2kV16*l%PFZjs zC;4aqod(C=Y^mcZ;3La(YgvQj6nqgGcouzK-gIR&2#d(pU3K9$>0!I7S3!E6$%E+M z85wM@v@AQd{N1J^eUo+l|5Zmlmu1vbD;t5?8Om-4?y)F8wXDoka}6%sm5~{b>v7bx z&hYpx$flG(XFT>-NPxyghI&%s9986F43M<}?BS?qFT>;Klg;_HT#9TwEeg2^E89f2 z?rH<_%(cZNxTBk)Cz%>C+dxlh`PT9py^^&7^dkc<8%AT6S73pq9+11L*FaZF`NrWo z0Y8s`^#;dYgGBC_ay8i>H6R&AZP@@Ub2vXHuH&lc4WJX*F=WE&z;6uC`NHt{dOmkN zKNj7t1^8$Hrmb)u@F3ZGf?3G3-_*|C43DqJcKi^V!u0?H%tPi6X0!dkuocO{vk=M0 z^8<_WO{S;oX~k@IGbPSFfRA|q+pSs?fya@_nx$-u2bhTYD_=b`fL|j6B~zw2>aQTP zqb~y=SN}H-NhdQEzj2thb?=qyNk1C)`Npx(LFY@rkB2GyFeISE*EQO1mGjCuq<8jU z(uFJ~n=s2k-)&^OyW8-WGbzh7cW@??-q}OR60$df>Da&jKY`goR||ep*fmO(7lqyM zmjo(=bRl=jPX>57~GOs_K~AJ%kPlh(T(Ikz+K3q&m7y_j+PvsPm6^YJujjsUwZVme% z`S=1!Y<5Bx#BA6Ry9J#sNcugSNx1Lfs|Q$zOn#J+Jsr-qopAaa9-I$;XQdwZSXPl} zl&E4jY?D?!=Abheu@gk(MNGroYk9#!UoY;9UBL*IpFhu1!R~W+Q?Z*rdD22xG)^bI zLsG~Gm`w(a0Y0?Ub((>m=(HfwG^rhuLY9+lqs9c_Jxd)+DL~5GA_Z0YmLA|b)Id;yemchK14>!&kU4t~}F6{R?$IerWU&kvf=WSs{9nc@eUs%$sb=v@&SJBvFv0tQv;}H zS0rU@Cvb4}_r6Hh@sY@O_JIuKJ%~els`4o^=v;ve=vLt=A%mhQilQirq9}@@D2k#e kilQirq9}@@C`xF)145gN8WQ@Fw*UYD07*qoM6N<$f_lJk7ytkO diff --git a/app/src/main/assets/shared_images/create_bookmark.svg b/app/src/main/assets/shared_images/create_bookmark.svg new file mode 100644 index 00000000..968a164e --- /dev/null +++ b/app/src/main/assets/shared_images/create_bookmark.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/create_bookmark_dark.png b/app/src/main/assets/shared_images/create_bookmark_dark.png deleted file mode 100644 index a85c5fcdd98de1b2a5e0fd0d01b7be352bf107a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1043 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKq;hZF)NrfI zw`Z@|u@(-_EBhFDHW+UF!p~W$F)d=ppPj|&-{JZ($_J{>+sZDAePH*2`vdcb%_`sT1YBpxna{M3$*k(#;>FPiTs_UJ zau-B1Y&*|*pK1MpxA8r= zeC)OFMRi^A>@t=cb+SJu?~Si|bdzU|_pilAlXTS&L_awy?{r{eSoc<*gmv|It$Ey| zbgvjSgiEh8EzMplc4})yA?Jb}ECDf08hVT((;2$5B^|z(%O9zW2 zz8*Lp$8gW~$lf(QUW|99ZZUq+xXoNs$f2*{QITjsjG6^-qnb9`@n|X&$YI_L zM}1%VADq2y`p=xdvYye-av8s^HtakSHF+W@*!j~N5h{UB2U@+8OG8f>#dlys>e+O& zZ+;g(6NKh)WUC+s0D~rmO>8>Y{B>Cj{5OAV-1y!w`GDzz`RlA-Es0{-eZZ_B=F+q! z(v#kKSnTSM}&gCCBmEj%3^Tx%K^t^9pc6e4N-PoN#}J{BQnH3%O?^2e^;_i72*{TPAm4g`xd5nf~^b zYy}C)b!)heA8y=Kd+hY?+~0HFUazvB|9|t|wCc;>`q@9&JpV4)Dkpzn|F-qF?XLc| zgTe~DWM4f1?kd2 diff --git a/app/src/main/assets/shared_images/create_bookmark_light.png b/app/src/main/assets/shared_images/create_bookmark_light.png deleted file mode 100644 index fb04d2420f57a859d96b247fb11c2da309c41a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKL_vSV|~b?h#PGkVpZH+f{PyTdVElR!Rm3~np#3~_R_7_!ZvQ)E+`#b z!5yZh)wK5hu_V!^BNb)l>1p3>{>%H6AKEjswnDwS%viy5k_rr^osD_Rl#yk@AH#Bv zvHO72*`{SLY(I!qu-UN9V~RHAUX?3(V@YJok&QpAd6m{O-d|BKnAQLOK-KxJGIOJ^ z#Q#{>dwXwKiHjbC{fhk$oTcp>y=||RiacwaekK0R!anl@56`W>eQ@8T$&A+ZHk2|HwVy_#k*AzTlkUtwlfOo;Y`&^eSt3T=7xekbRDZ zY2-~3f>Yuqhd_f4%Jt!pcfTM$DWW53#;H(H8}1>79ZV;wB49W0nZYK<8l z@_?DQ4-}MvjDnk*TqSeoS>->!xa~jQ*s9f+?3sLVkAHv>Lv23uZJYD&Uss-=FMswo zOCBTC0I*p#5+dioZUCBlOr#<7m+awP7n9cY&MRJ9_D`2vI+($P6==uy#)ofU7K8Qe z;pRwZhkFO&hTfO<&A)zqwrkwBks0AmhL+EX0l1wXlf|&_(j2QQF$-QB2D|XJ8V6E; z$?n=9{#dqv-C~<_E%yPdvlF*$eJyjAQ8@Ps&jIcPUJDb)xt~qMA9xl=@omxBa?`Uw=AU$* z#Xx2+h?zVk<8$oWr{5A7w)M`+-M4z*?ZZB73*LIpch348TY6V+5wpP)pb59%D(W#L z=X{R!-DG=&B|+>~P5ACyeq;HDNTAr;Ew*P;7{VIb4+On+V$11F>kZ2iSAwNlVDdfo aTHL{V_AU;__cwsKiNVv=&t;ucLK6T3uY+O$ diff --git a/app/src/main/assets/shared_images/create_folder.svg b/app/src/main/assets/shared_images/create_folder.svg new file mode 100644 index 00000000..57830397 --- /dev/null +++ b/app/src/main/assets/shared_images/create_folder.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/create_folder_dark.png b/app/src/main/assets/shared_images/create_folder_dark.png deleted file mode 100644 index 5b0b258e521a6b1055e571c13e3c5ce3d9aaea98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK+UCE`&>Mf%alC03|EM=ByX9NTG*^0SoE!Org8DL&#Ut`exG@Cj{WO3yVKcJJSQQe zEnky*x>KGBK9DI8vtWDEQ+Stgo$C>IzlWorx~Kf42|F-ES88nPFn+jE z@^sBvcEOF-<$|*pEM>MiYLsVpgY(~2p@zqkLk;=aoo~r8u4kU_8`1slt@s1A53CWGK544`$9tuwtReV-^#RcbRcZT-o;2w)N<3{=?tN96U~jCSmbU(P@&6O7nSYrg z?*82UbIWD-14V0$KA*kjYsWP0>EkmsTT-398Q6ShM|I0Scsq@^tl??p;?#}C2R_+M zpXpx`o5L_oySU0}f+Fo#j&oaBNXUa|@LR!rZX>6OK5 zu{!)e%pj7^&{fQ#bB+(J0yp=L*(7iagJ92+nRIHfxUO4CM^PkS4Tn8?^7uJ~swDcUqQAw~f zbQyP;Mv6+^ejh8ojpadFzmrM-{9Sr)Y;LAMQwBz0!2GT)X7!Bj%8$!g3NJa}oX|E1z} zobN012dy1H_N4}Ywsdf*IsWkdv%Kx^uBQBBIJf;?&5KF_5y9}r%?Enzew(h6Z!i|T znC4nJ zsK28E+`#=p<}JAdljnVFm(lT}Y9kP6tNy=9s>vsBQoZ8oD@jlLJq%7iiFdJfRQuhq{z<$8kg@#4 z{(`cmo@FQZXS6Ly($r@?&*cAlRtHxk`?ZGY2ZaCqb-mUR`N=+c?cA?yJIpdJmTgu~ z%n8kxS!pHyvb0gPEoT1SsebO3J&d1k+v_ipn{$cLy_+3wHHLoF}Vlvd2l); z@Al=*W!f>js6lo?^|K(h-Rv*saUa;YsF~N{d(Xw)X^RDzFZfP&W#7gAV%c9;_FIfi z#ta7~8y?(YW)WY>yygOT;l!wuCdZGtay9%ifXJ}0rL%LKV_->V0IA){$#afRU=AZx zq*z#Dj;z8CGggJCfB)1?{nXgGbJF*#vtD!F5@EP{fPv+?nt_G2LjjwD1v6NaZ$d#? z!-HF2Obde#ycIfLzu^1%C0#ps=4ceg2dnnUMs7dx|Lly^EX#*6xBqSZ(K=t_9~Z|t zh$bGGF|!XmcmsACM8v%D;7zbMw!W-t*c7x*{l$~tKmWRL9Z|zaPka^M;>!_JPJHFIRZ(Z&-Zbyi#+p)dBtoKMjn77S9VT z_^4Pb{6nK~&#dn|-dR_;{`21#@i%)aTiga~=9-f=i?03uDrsSxa9698`A6Jm&d8(L z+&kh6uiCDlvu!Of12K5I`njxgN@xNA+9riz diff --git a/app/src/main/assets/shared_images/delete.svg b/app/src/main/assets/shared_images/delete.svg new file mode 100644 index 00000000..64dea91d --- /dev/null +++ b/app/src/main/assets/shared_images/delete.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/delete_dark.png b/app/src/main/assets/shared_images/delete_dark.png deleted file mode 100644 index d98cc72421a6fc6526827fa3ee498b4b8842c34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKd++w$KYjDnyV}d=b=~;xb6iXM z@S!*178l?D+4WXUv*bRg@2b`>;J2{d`*d~ggP73T8FHU?i*Ya5?av%;RIfg@$AO}rJ`y=nP>-V!SZJwc}m0$i%HfMkFZr(kEm8;y&AGptWNYcRq zi_XC#812k3e;GTERQ)$omJelB2NsxLX1*qHp!+3b^RfB0yo`6|${D;k_oZQ$+=aXD z4e1Boz0~FY%_FmR)y3@xen>A^HILbRSvk)RyV@Tcn#>s-%HOkZYizz8E%u4aA~N*- z^7fwnj0~$@$rdpFu-Kc*DBsAPZBY~9$-of0m30ndoL~OW?l|W3)vqponUEhQ%-|4e z%jU;;{pL@PU-30;>loEny?Xd%#{0F8q#wBN`fX4kXu&VT$j4Ca=Kgn=|C>JtzRsCz nU!1@GVY5FxWlT~@{lWB*%~QK<_M9YOB4zM&^>bP0l+XkKdu=Yl diff --git a/app/src/main/assets/shared_images/delete_forever.svg b/app/src/main/assets/shared_images/delete_forever.svg new file mode 100644 index 00000000..3410c881 --- /dev/null +++ b/app/src/main/assets/shared_images/delete_forever.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/delete_forever_dark.png b/app/src/main/assets/shared_images/delete_forever_dark.png deleted file mode 100644 index f93d72fe879d2a670f260c71ed034015a03e58a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 zcmZ`(X;71A5Pm;M;3Fo86ojZqB0(y0RMAESLWmp*pin?1h=3wg!Eyx&mlD%7fK(wc ziUKWKoB&p$!gD`#cj9Xjf3Xp5ZS-&c`E1b`%WXr{_9Ir=LP#-72aTG?wj!7td^P9%jcXB|^`zLDXCclIJyYiaf|FpbT6b5Fu2TC3f zYN&RKC8D4gK1+-`Cg9(^o!Ej_zC53=$O`Y`Dv%xG5}re2 z3Nf8IEg97Sx8TQeg$KFSK&Wsak4c;-Qdc*2+E;XmDjj!LY;H&>QoPM{v=B_$hy4{~ zm3=5kY__lnuM}cR{DGAwIYJk@lHqL$UP3qt)WW;%JuS;ek*|VW1zREEI!0hgqoyqW z3BBLWf{6eQOF^$Qy0OJ`@-CSnaPKt%wvSiA7ZTIPMO|$AaoQaGY+Ro;#1VxcW82D& z=;orOG2a<%>(XM=r@99_vK@=-yp|$&F9+wmqJ;kO`gHi8e*Ln!#TWV-<0K1Fl2a{O zFmNv!j{oZbmYbT)!)A<(Kg2Kaj`Z`Ftbgt!T~$~1xSug#KS;5;-nKQ`?!(TZ`%gua z%P5Tn$dSr zW(TidJyizPm|)pjLbpe+2~#jRuYk7Iw5EIGz>){Em&a1<$}2ck;xbs(MV)wJecw={ z%4xYf5FaX6(U3xUnDi1}s**8v(GZ5Kp5ajo_E9eDV~4U54P99iu9vZuI#7Sc2;Ty+ zXA7wU1f*jVZYtu$7(p#A`RbDnixthUM4s(cAW3(&AkMls7(c@f|3>NA{??d9`=~4Q z_eNxG_}8VZ?fWqbh+t|@LW3o#I?(*{CdfTKh3G>8(Md$<(-nS!9xJAKbL>n#Q`5W{ zMbeQPonAJYpjZP3LrSb8s=*YZzyna)`=N~Qr-wVVQTsFi=yZpIG*t~uTeAfdVJ)7M z-n==^Ndu5!Sqvxw(aCeW*~h`xp2j2}DgZc6%{r+o5G2p#^_hZTUHr0ih+1|7tfjky z9?g9@vpIM80bm{o?eLs?!(B6mABjRsLJ6V4nJ zsK}c%FK2#n0-?(sOp%^S7?P_TBrO&-=~Uweg{)bG5E2D4~L&<$n)YC)~OGkv_~*xyh*^SLyG_Utt?i_iP(U5-%+Vl;YUSN@ObT>89X2Ac!+HKGlF4n|Hr zU<_pB9o}4Fb)xoMJd+#SZ~pbK8G7j5&4dam0LQ{C+Sr^<%IBs%Kx9rAk zB{Ti6Aq}}xWb&qW+kE&h>MXjTA?mQd7tr~$fYdaFJ-2|=RE0f}9QK-lO&`{ZD-q2Wygwn z50`JX@fMg@{^Oo1hkkm-`i5G`=eJ(=&b=e_hA}Sf-n0)z@>aK}C3L>LcQre@Ne}3Y zC;aPtIhXP7&*j|Jww~!iZpGy(3vz#4o_0V97%K0W@2q3l`S5)R)9MeQ3^{E(B7v&* zhjQv14rkmT{p6TXMC<>2&NU#O>@$f9@0tCDy=vLf>tB1-n_rm!FK@w*K-AQ?dLcvc zciua?JMMpz;`(s7nz?UZb^d}jrkaoU8kE1^1}4IL75N7)X20jX@<8J0f9|s0;~W-A z2K)W8Dp-E--1&U3rFnPA2a$ko=L1&%zMtCHmw&)<^2xIkFCXy#b6B(X4~w7V*_?NC zmi#>Ie@}6$)wM?Bw9B)C+Z(LUT-R??eqbhQ_vZSC#tCa>mj2AR9yu$VtG#jWI_p{Y t@@H|!%+HK_w$EYzht3WZ;Nky|DMZ9`f5&X=1YmK&;OXk;vd$@?2>=4=0fqno diff --git a/app/src/main/assets/shared_images/delete_light.png b/app/src/main/assets/shared_images/delete_light.png deleted file mode 100644 index 46c58c3d6339d66d4cdf82885f63d956aa1c2e42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lsd~CN zhE&XXd&|}@+EK#oVRF|L4^4qg=GY9SDIPkFtSn-OoGvX|;@KZ`SZINVw3P^};t{qx zH(G;twEf}z-1~Q)`>b#G-k+0^zRjfKISG!AZQ+bz>h^mr{bAGT$uGB8$?p^7S@P;b zZvw;B_I#FBH_Ja$`x7pGjAK9Gxj6eRW4=`E>Z#cesuyS1vaFMe&6aS#vOg$1Rrc>= zx&K>xv*kasJz$S2x;gF<*1v5uF1JJslS@Zt$f0(iP6=Rod_`RAI2C=Km zBHFgh_3S|ThuAa?8o|64hBTmKwd%hKGF7aQTX3QFD}yr2hs9M5PEXIC9T%W zC9v#1AQRED*7C!yga7_c7re)q*PwsZS>(qVhI%Hqjl6dP|F3$pHLr24n)P_ZR B{#F10 diff --git a/app/src/main/assets/shared_images/devices_other.svg b/app/src/main/assets/shared_images/devices_other.svg new file mode 100644 index 00000000..24ca83e2 --- /dev/null +++ b/app/src/main/assets/shared_images/devices_other.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/devices_other_blue_dark.png b/app/src/main/assets/shared_images/devices_other_blue_dark.png deleted file mode 100644 index 9330aad1fae6c2254ca274d4dd4e2e61ec9081b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1886 zcmZuyc{mjM8vf15E@T}$MV%(wRJQDlkilTONydmY48~Z8LFRU22f|CU?63+;g9E-{*P1?|Hw!-tT$7B?s;0x?f6N3IMR*-3{q0 z%+&9c5EI50yNg}Iv@hPt9U~z`n#84Sp_U}MosS3L2<|%}T3Kv@u&9>c;-BCbb2)*0 zF)j>{$ziMN*h?OdS69l8rh5V&m>eM@(|*;v_aoDNIR>$L}UyxGo>18$ou= zL~_tv_`pZeUrDq!`IzdTw-oas`NfPuEc%cqnz0bG?v$@^NbkB6Cp-j|hoBr%&3~3_ zpo?6gO)4lUJw$WqGnpAMJRVO@N}5|}>ta{rggoecex~TBDDW`l61unL7;p^KK8?LC}pV=N$z(7@}xY zBXIQS-|v%t{)3pl?^r$vf^5xtBWodUm2qUqMYO_6@WQ$t99;9O8OL{o&J!d{q^Fw2Su7{v|ZHT9NQy>);n*BdwEzMgu<>6<#|4wPjIcZaA`2Gue z^+;EvW4|v~_0VaZ`C)*dU(!3pET}3kmSkMtc@XKU_XF2O-*3#@ppvgWme6WZ(Y7j& z7U@VZu7Jk~)@EtfoK(hLBKh6xZ*42uOo5%j5YEWAb@nv>-Q5S(o4p=7mLHSJsv^9i zfXIP552fmy>Q{OZzBzQrFS@$ndLSHkUbC{JG0m?rzd3 zOpU5mBk(iwm=Y)XIQVfe?>9Cvn_TKVE$ap({ME;Jpt8@#GgmaK>;~7~jF+O``7GBl zCt->5!_wwSf0D0~PEE*De@lW$G_*u|q=H&B(-=6IH?RTTY!Oaz@}z;1H)EH-@>=g_ ztK5O^obIztR!S+RCB2iYWv=XBO1+lKN;>T_^oQ2`HauxXJ~ZkjT#_Djp;KlDt81Ym z#@4n)@YZKVsNq)__#J=4D`r%auHoC4a_`@7yl?`h43sC%6D6V=Y|B1vk9xc)v*r z+>wR^&YGWg5o6ZSGnlE?)D~iBNMWLW%9!3hR%!nJm%8l&1-wi~%xiu7jh4<* z;BUFenpAkQQ&Z>QS^_yD7?wL03Jvx^EVHo6*p6>6J4W89o_#BqBK52{1}?PrqW%*D zgc>^^oU3 zxRp|o=oyRxz(H^MxvYHPo#HpUAqHmFgAE!=+vt*#CfL-IFa8FJo)tU|x8+6URxf~f8p~V_a7kC^R0ElqfMgVgl?-D~Z@I_ zmg_ebshHltM{Y!e4|bN?cj8zZ58xMMZD)+d%ObBwhpX%0WG(G?w`_`P+Hb=m>~5mw z;#kwwAi8;~ftrw<-uyhf)_Q$4P|hb&mU+yKu6A44yIt)<00Iton}!tS8Ogc&RA|F(-8{cn6=H-}#!kEPMY<_wQ*^ z`<{+at^oT{6{5}V?yaUbOa{DAbfsyvD^^Yyo=LIreWdlG^_6JTgfcSXfTzyngdkeJ zzNHNT;9vNFOZkMe(MFyhFAR|vZV>{s{%ye-C~n>~5p*HI>uqaq=MRe%3+Ih<+lI|Q z+RE~x1ObS`1F2`~={tsM)K@3gnpE4FyntU#H@_bU&efR_)Z0XAT4kiPuD96GAct|c z&YUeScN&>^dnoI%v|}dfZ78%s+(y$5qCmY)lr?F`ic;WF_g)fXB{e8lKe_PeenO_ bRG-enJdSB!&9s{E7Xo(|FJ!G#@YR0<;R#g% diff --git a/app/src/main/assets/shared_images/devices_other_blue_light.png b/app/src/main/assets/shared_images/devices_other_blue_light.png deleted file mode 100644 index d6e7989bf118b4e9c55031b7df588914ffdbf19d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1862 zcmZ`)c{CLI7yr&+41*GeG`7)65wi5qXc|K3S+X~bb&w&une4-hkXL%LhQ=ht6EgHH z*^)Ze;W5baS?;Pqa=}{Ec-g3o`y6v^b}{_abhsiE!F6BX?%Se8vnwjV(4Up_trc2H0d0t zN_5Gen{WImHyHtBtY)Q4B-xLw$IwY!ir3INOgOxkIhqyR=QE|9Pl z4PP>yIU1EKrQ0!>Q*wLx0yX3yXrV>0cH`+IVEA{b`)QcychD;E$pL7RtEDn7cY#qt zCbeb%I#UPy?3-lnnkP+!F#)QMBmg2X(}?a49e|Dres-etmae{F);wkk*4@3KZA)FN zRg25vc#rh;JVYfSjC5PHz?t`;48@lfE`sa*FOrgQD$Ceq+xnF2Onj;9d$h~3Dd7rS zAbo-$PiYgC?F0Q;Yt!pd+8ox1YB(M4oq%_ufz`MbAL8bAFY?nDGv#P_K7^dWH4=|U zBumV%End>NLLj4x6|gnK07kPScU~7>E^ORgANDtzH9g!Yv7u-Iwq3N0dR#|&mo>9_ zw`Oay1Js8EOpD$wwPj+DQ@6L?&fsLAn=$*v5OV{V;-U=op%1XTr*8y_qIo{XH!Pg&@g@SKSXBcdOiwM;&cvSR zz#+YwZPKUjqiE#@ zEkjt~4?hPK`@;?%;&0Z$=MHjDSnJP2718&Vxf|RODwgH=_;6HVO1^}9=-2uTqZj@H z_gIYcLY|_rOew+Wf8Lw+?o0O@RideUEjlvy2h}SPpP{BUKS=tjrvOa;biMP-=+iI8 z0&Vc;dWqI@e>DtMi)RYs2rto|X~v;lZ^u5~@%k($D41>ZS;l|mfh4kC)CizDdRmCO_^$Z~7{ia==jtc>{eDNFXZi6I!6 z-5qb5_~6ar_z=TpUFLBReGT(|rz zJ2^#t-1?jkl$J&H(8{sIY^gthIg1?j-~YiLwNdqfdNw`Zxj*DHRZ*jHZ(~X$BOJ4p z-J1_aO%t}Jsyhr++}J4AH-2QC%{N`o1pDI>RMOZ!tfSOyN}+S{gE}v)N!Ex0;#b2%6(l8*7*1CW8nP`4ZHwUj&0L^XR2n7^w~*LT z#cpP72(?Qugw}}JMDQbk8~-v8o3#|%U%LFVqB-iuY>liDOXy0O~! zvfDk%KGE_}NxaamvP@V!w!P?L?9+=cTTYaIdWT>6ZEDQ(681IXbNl z{MZGW`+YiK_Z7wwH@g<8Ga4;g1Jy35Rsz{_tKAM}t7jZp3}z~1qJ42#LDA(n;VR=d zXv_SX5~^<_xcut{9B=>JsVek<8@aZxQ51xcr2e_$u-WxVWaCi>c}=Wvr~2H#JM5z@ zJ&wo|6*AD0Qx5L&HAvm+bZwp0Si-WlWJqnZkd diff --git a/app/src/main/assets/shared_images/devices_other_dark.png b/app/src/main/assets/shared_images/devices_other_dark.png deleted file mode 100644 index 42a1e526a6e6ef292d3f8cb37e6dbb36b6ae7da8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1524 zcmZuxdoR6zm&AVabv zkj0txm6F@UvDw1!l{iU6Sd-i(#fX&*V2f+1Fgr>F0POSmN{CugU9ebGW)Qs?ZlQsU zD8Fzj5ET`Lqn$Y&;qMnl#f63kWlfu@008_fiD2a(&6yf<7V(QQjRIbtA2pwBUX&Sq6Ega&T=5v;2%NI#cvT51BP-Ma45&5T& zd~R9Yi87!0U9BcIKcUB9OLe^+O{2m(=yK)K;=VF^jQ8c3ruPjS*FE3u;~!uDU}&8W z95?UAl^A40!=AX*m-jPFPz;++D7D7Qqij&l%3yd8D=7j{X@{ILLfm=(zXCZTcWMRe z2rb3bQ>xqXJVe42YA$Y=fbg}%>H;SLTuJ@STx{I7K}FQax!WHd`G8%Fbo6CZ%-pdv z&}#d-ye+_A z?GgqM{C@8itT2*Pp;PqZK~Nf))#&pV6&+Ic>O~F+?5C^4NQTfQc}}C^@~z37b)OfF zI`PI~IxW@niZF)++nAX{eqfJcLx{(b(5&s1kzQ}Zsm>NOPYhN!t+LqiJ`Bu@n#eC8 z`v?nyH%N3S_QdwVH2hSkaFiWwqOlobxK~3SC2GCUG4YBMdE~zgKdz??IEa;l4iY%S=rXmy2(#3D~%vP6p16UG>qV1z%ZZnlhPxJ1xr^ z4N_zG_h}F3RHf*Bk=1XS&R;BW_#Qx=l@x$@dLhqkRclLr2>t5{y1X{E4)a4MP#N-4 zxd|FwdovLnh3xqB)4(oN(-PTGp%5#u3qwd~Uk7F&Rsuo7NNOy<~Zjm;TW<5W}c^9&%i#AjK29fh($M9Yks zy+^(?>uLVcd-l`F+gh{5w|Ate)eX5mS&i4IFZ?4F(!=rT+&ZeAZ2?)7u1dBbJVW`q z5pnCk>a;hmasHgp!%*NmXIRmoTqCNZWq)%v|tT0)AD z>vtF|cel_USnSgWP;;2Roa)G$hUsm{;PZzoL`)Xj3wEH4mp%8OPOJ%bl+X>+&TD9C zj_gp|vepFQgntb?G(xDpkurO)p@e69LR&u`;&J|B(118WIun7bb- zT{&E4@#Mh6`PRm4)9h(O@}H-vgb-bUv%*NN&f`tFn9L))la#yH%-&xN7+9~$9$pFj c1`KRA5$p-aa7dwIiTFbUB%%|c)Y>=kFHTUrTmS$7 diff --git a/app/src/main/assets/shared_images/devices_other_light.png b/app/src/main/assets/shared_images/devices_other_light.png deleted file mode 100644 index dcf7e12e8c8e647535ba4495421dc4958327db93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1385 zcmZuxe>f9(82@g=*cm12u^I_wmD01jOh(B3xC&3m{J6IHnM&JjW7OCtLOFMiP$}-v zw45YkSB2Wkb0Mg&j z`+$zQ%Vubx^Y`5;9Xiruc=?AI>cBRP&DF(5G{0~L0Gmk520@>0J)%omG6_UxFg2dZ zqR`_2i^bZOc>E|MhC++mMx`fQe2+)z3aR|PJwsB<)%}5otqAKLO;Yy>BOLP_o@I6) zY?=o!^wy(6TW zkW{OG7nSs9^Q4n`Oe!lOce`pE!U{ypQ(OPeLs;s)w0l4p=eL z#6j!P*5MTvRbr;u=!B7?&Gv*nZKTpbU;3IjZh}L-2-GRRWrhCa`(@{+HOlvF$hct; z>$?1`1^2xc+(wI6oqcQj^>q9%$4)o&$h8S!FJ*=EDdwynWaPLn=;QZH$@*gpypImDgS^Oa^pUxJa&WH+=h7Y1*6D#gbR5KqdGH&>)V~5Q_U+_N8$GW9!H49Pl&;E}w09!I`ad~R{jiw4s zT}5>{l=e)KfozafNz``o=7p`p=G;AHTiBr`lx>sEJI*X@Q8_yv-Q>szTBGrnx|>Lx zn4sp@a)_!#nf>TMI|h)CLwdsD_}2|8N9pR0UGuyl@E-+}sQ%QJrIYY8C z70y^{d$QL=*jOA13SdPh?~)88kMhUD+0nQx%h5?IO*eP?p$Uw-b1cq>zRuK%=h6V< zXj6GY>DscsTkzS5RL~bD$-evmpIK8%HXr?Ia`O9J. + + This file is part of Privacy Browser . + + It is a modified version of `dns`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/dns_blue_dark.png b/app/src/main/assets/shared_images/dns_blue_dark.png deleted file mode 100644 index 57d8c7da69ad18a8734d7a46b9e24a1fbd7d955d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1897 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 diff --git a/app/src/main/assets/shared_images/dns_light.png b/app/src/main/assets/shared_images/dns_light.png deleted file mode 100644 index 0eefb00d58c7e568697ddc8aa9229b390103b115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1356 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK0Uo`cGn!urLT+X`D z-`hP@7q@EvR`v+^k{;gkKdkrtj0H-k&V=mK<(t@K_I=LhJD>0DeEz*L{kKi}yUL2^ zwdZZW%Lxdgf}LA+52zpDkkF3m+tUlQ+v*!OX~Vam&nNawPc61aZ-L%q}s&l}Z+vv?c!cAEZ{dY8n$hb8Cy z8q3K6+kuj02X^yh`7s<9&iZb6=O|Cvv}gZ6Pyfu4D0!=zX^*n^%hCqP2mXs=?la$) zdb%p?B-;+Qn#4JuHx%xBH6^DZxW!e@`*_di(B&!2fA%>Qg)L2Cj>%JezElj%ymQy- z+?u-vLE9LYZM<)3k~?R;)lz##In#4L*MRiLu~!^5xGqp}(O|wxSLD`RTsbDIey63p z-PgAJ2BW;v|J?`N9>h4kwQJiw#qs^w72DZ<7;emyKOFn&fW1PU_bri!at+^I-v{kD zE%~P~A-h@1`Or4Q+BeeX4&rh=lEUv^$*Qe+dtT72b)9++S1nrw=ig`hr>?Pl7gH=Q}-X+++|C{`QxHxAWbZxxCC;QBG?!<^O*81P`8 z=6z83z~`2w3985oy8t{7a8Kj3({CRFPt!{-C% zk6HFhJYVg1lFg#|@BcN%$9}E~-o*GXL-F~F);Xb?HyLvGoJ+~&wp<;wiBT>3gymJI zbE|+UihV;g^N;Jn5Y=og?Cv_5=0)sBbfV^{6$?Ku-L~lQu%i1J|I{1?yYnlqUoV*c zn|+ST9Hy$x_rEYdC`@Q8(7yRQsoZc=$;*=q3?F`bCsQ!7AnS(7hI1PA@h`7zIE56p zV!R99Gt_N5&jU;y#h}ztlgHG}W|1|)`BKTFTlP#k5B4hrMe8u|o6nf9RJKS>!}h1X z`K*~uX3X+}VW0Ns2gE1y{g`mZytxyWKp?co{=dvwRhkP|95bB)EcqBbUHx3vIVCg! E0ESL$)Bpeg diff --git a/app/src/main/assets/shared_images/donut_small.svg b/app/src/main/assets/shared_images/donut_small.svg new file mode 100644 index 00000000..6deff3a7 --- /dev/null +++ b/app/src/main/assets/shared_images/donut_small.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/donut_small_dark.png b/app/src/main/assets/shared_images/donut_small_dark.png deleted file mode 100644 index 50c79655d2c503b012461ce4cdd6e8b0f0cd92df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2527 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 diff --git a/app/src/main/assets/shared_images/donut_small_light.png b/app/src/main/assets/shared_images/donut_small_light.png deleted file mode 100644 index 1ec1ca883da23f2c5de32d92a627b9da19a8313d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2184 zcmV;32zU31P)A!rO%L3il}*rAw^TOnoA8WF(f4B zk_sAgh*^scW}#}TA@oIPRa;^xTEslpR5U16M51WX*XNJbM_bo>cMogtbMIYWvi^9< z-FvTf&+px{&)$2j1BPK3hG7_nVHk#C7=~fgKBe3aB%mX(F|aN$r@}V9fNsD%V4;#< zh5{=C2Li)^DZotR0=5864*fJOZqovM3rqt>1IGfJMD*7Pqy+2*TnD_#zZbil`3j(% z%>^a^gMl6q;xHW90k{GA?`-QrX$fFSYX)8d&H;J`MP;XHVigKGHHHdi+&4O)@~v3KV|A)fF8)Q>HdkwtrkuL#*%Q&Af*7h z15YE9KI8v626&7_D~PECuqJY!+al3;)y{#yBP94GNFjjk$n*VX3C5}=4gkiWys4xu zfX>Li`R2;w)GEgTS7{EQDS!sxUZ9WS81=w~z{y&jYYN~J;7G;(>xr9zZ8bX962PIr zrAmF*Bb|V8$QnviGz8Ft1e2FKWFz3t*qz1}Km+3BYLWXjgu{WOV|Ex@0E4krK5cG5 zau%WxQve$R*GBBmC{H)w>R6q{6u=1N^@+Xz<756-Y-BbmDm@7u~x*JnSyh%Kao9( zSae2CI^~Y55?d=`-2b7GwrlYf!F~nyQHZ?(IrES^zV_@eh1maL{{jTqmMsJhQj1JS0&;x{D0=ypbC5cHTC^aiab_uw5sGTDjWOg``2X3nq&td!K%$s@Y?fZw zlHr>>z;gCGuz_CKWqCD{@3E~Jheux5TfoMSpHIa-Bzgo|f?4QMyKnM|L3ioP16XrUU0bu6m|FSsoV}!GqoUq7jrvM z&D4SbzRvAHHB$=$n48;yY9@E7SR*qo0{B(Ui!iblTdsC$K>%y#cA%Q61p(}y+ktAP z76g#w99*s9vU}DA5kb+4KQ$wTC_hU)ZUa*8zKBb~!;qJ7L}xbnmwwCHZ5qM0!+-#P zwN0%u>(l}SSI*{>emnTJNWRB5)$QP!j-O9O>!Hn5x2OI{a%>U#8dy;2hg}7b`abKz z9;8WF?F!tQU>skZu92$%-gEqXYDS=&wAujNO@ZF~SB7^rJFkXg;lH7iy4G5mD|dYD zSy0KCN_e9HLAGaq0>?*;c?IM@KX+V}nEKNAbp;5rQhR{#=ky(c4+;=VCH8q>tQAq@ z=ihSn9qzAjFCj@V6AR$KizP`8Z6w|+-Ba3w4l&+e0DpbVIW5fRJisr&B#(BvS>EBZ zDyM3dnGZba+Q|1n$T-h-h8|BLPe4xi3Sbh&-5sn~#``q#6~OPl0~#vKL*6#(OvstQ zn*!Pzad`lln>iCAfY*WP0qu==jPY$4dMend7=fX}bl`2@#-RduoMP_~)&oI_v7rK3 z1Pl%A!|>-VJSTsx#7GReADIsr>A4tL0rVz@02Uz!F@hX1oOv0T9NI~&)UcOmI*KWPFOf2BhA!U&7sTo;c6RV+s&l8XnivB79IG>p z^zf5`pA`Bvpb2<5W``OA_zpM;dn$;{r^xpj6|Djhda6cr&hTOxJ+|^6h)%u0($}< zB^axgcmg;T<;iraDq-IPeSr@XjaThV1dc$`@Ki}zCT=dUH^omd&COUOzi)nu!BW== zoCEBF?pr;onH!OuM)m*vR&o@IoCh2NT%KXL(&c%u}RIH97dzl*p$R zq@qV32j8NSyHxC5z;?*drh4QVB>rq`CAkFv@_5(>xg|7b_9Yd+AV2r}Va2YOVrOK@ zvzBiG6M=Oce5pH1$d>XPYD)k!kQZ+o719U{C*CA6mjJ#(_C!jqUw|R3j;x3OKy?Y= zBV-rP<+b%j8*~8%10Pdd0W3rkHTI@>HI-|M?UB61Z^$ozg}@8Inb_nmIUSG+p(By( zq_%1p#uUIDBoAT`&^HJtXc1Y26tJGU`0qw!uVGhUYhV+gC;oA^AQjR-M`rP_ zAW1Mu%CQ-7=m=~I^m1s^3)m8yz!`>N7=~dOhG7_nVHk!{6Z{R(B. + + This file is part of Privacy Browser . + + It is a modified version of `edit`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/edit_dark.png b/app/src/main/assets/shared_images/edit_dark.png deleted file mode 100644 index 0b608d462855501712f5deb8753e1ab756050d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKP5qdk;4-Z?7XaQm{6gSma{K1;5YxhFpRz?N_tA2e zm-3IAH<8O#^(+_*Zbt2%x$NcNzWn-oQNOQ5RmW7UnVmUHPOPqG>$mf@|6bePTmNh7 zgI%9?U42)3!uS-2T}WK@p6W;aMosYtKA(Es|84#c<(>zNKK)w!R-*n}T7UoUD~A_t zpL$(B_xulAw}d}h?8oAZS&pqQO8H|7;&LBdFVpyOwT{gGB%o-JNc~AciTz%Me^fz| z+DGlvfTEj<{@k?l=b0ZCSHH#YW4iTzp%o6#e;B)8U`{?V-?GWnFznAv15O687T9&bQKx>3{3ue=D(s&SsIF zbC$h~eec|pbGm-@xgXXyUNQ9SU#!b_;79e1TR`S=UETvf*l(O-=(+Fxes;~C^Y2gp nc-SL<4hNwRPcNR6Os3g8SeL&HS=EyWOtlQ2u6{1-oD!M4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lZTEC> z45^s&_NHT&NFamj#ct#91(B_K4h7*ttRHhvHl9A=B5F+N6xh1SBo|E9nfOy?XI#f{{f?d0x6X%bwv2Wg&vDeK-_USZn78TP`eyAv`j6DsS~iJm&-HYV z%4T_g-D*Of{j0rJk6vGwIJmvi{nEli?`Q8@Dp)hKR7+OnPwnIFMors``Icoqyl=kW zwn_fLX36x+Ee5g+Et^h*SOpaw*WGLGFO?J9JG0Qtm*Y5lWHHMzd5t^vXQY%3{y8N6 zi~f8ac}wDk1br-SG<;{UI| zo}u2>pFYP|_|UJ9??3x3V06;or>w#K_eb9Xl`o5}n!9h zyWaZG|HuEhXt`%6x&IzGrq4M9i7a-rx=8CyA5Y&}*c*SXFZa);vVzCcw=S06zee`n zkJMxLEg!$1^RfKg59{. + + This file is part of Privacy Browser . + + It is a modified version of `expand_less`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/expand_less_dark.png b/app/src/main/assets/shared_images/expand_less_dark.png deleted file mode 100644 index 273197cfc0f39ede160348c8fa38351c49d15b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKxf3j)okO*a|Ev6ox8sH+$S5( zw`b(*-sc^@DG9U%12}|wo|`=9`o3nawjc46YrH>g`evK6qQl;(>G>o1kG&6e{_w9+ zwkTykV%`*7>H=h%3O|xQxN?TzeU7T_4mHXzt~Pz_U0|*al#g2@ai1e~U zpsDkp+ntK??ejJB9>OSfyzc@MRV|TigBmcFI zc$?q1IHb0v{dpwoc45)XkMfgi>>kBl_mt~dAQ*j2|6V4G?h3*E725@`Y;pMG&wZyL zl|^)m!2TUaIksI1`twLl`Np9$KlnY@h3$D8J1O36!z9*6^*0_I<5rGvk4-Zo|*b2?UDQkyOXKR-{bkV`xFNM{`YFq9zH?aQz|`{jB>2*ERp}VZ;PjV9gW#Z@;%r TDVn?P5s2^U>gTe~DWM4f30nXW diff --git a/app/src/main/assets/shared_images/expand_less_light.png b/app/src/main/assets/shared_images/expand_less_light.png deleted file mode 100644 index 1140aa2dcd601ea66bf855e5f1d5cfe2a5a7160a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l-t=^F z45^s&_NH}SaG*r%#k-dxl5{dPoF;IzFwMw!6Od|i>}^p{T)ALFzr!@c@3rqXUY``B z_HX@uS#wXI9he~N_M5ml3w zvuJvvqI~&!Mf+;;|6c3z&cy!k4D>Ax%vnKRDa z773sR&O2#0*em8g*>z~|?{%B^rk*gq6SkwgRBuv^@9dA=(_jAg{h)iYTk80_!1;n} zbn7mrvpkZ&kjj$X8($*X_`_XB`e5y(>tFp|zq!G2?>FaH-W&6lp752M?@LD@?s5ZBYy&t;uc GLK6VQ68#nc diff --git a/app/src/main/assets/shared_images/expand_more.svg b/app/src/main/assets/shared_images/expand_more.svg new file mode 100644 index 00000000..cea09658 --- /dev/null +++ b/app/src/main/assets/shared_images/expand_more.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/expand_more_dark.png b/app/src/main/assets/shared_images/expand_more_dark.png deleted file mode 100644 index fb63c9c677f9c2b1e460981dddb20fd5d51b97ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKV@=VwoA3t#BQDX?npA>osol5D;gpR3S4S^Dqe z_FVCuJAgJ|0S(txcIwm~4vDU4Q<@Z`{&VJ&*q71AygqHKZkv5+yUEh-|Jv63qh%b$ z|1Yd=b60-xQlajfTS4@%ZTt8h9p|XB6578~P^L4VW%-J=NNkKsX&IgZ5N z8o6S^iG7?zGX{*$#hnBMMm_UC(L-nzx(P zU7=1}Orr6}+L=JX?O8yZ?(gCRx=q`y$KlUfNdu;j+gBauIC6j2e;~j3<0+0K_U6^f m0{>%DzpqdE$cQb_56xqA58Gn!m51djNZQlY&t;ucLK6U0Rp^WW diff --git a/app/src/main/assets/shared_images/expand_more_light.png b/app/src/main/assets/shared_images/expand_more_light.png deleted file mode 100644 index 897b3061822d9291d4366b9ec6afbe4fe8806737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l9`|%{ z45^s&_Ui6D;XsMji+7b&_WO73P!O1~!zMpUDy~(^Q6XfBgihqd$7lY|F^=<|b?g6+ z+l4|v^Ra-6W2-N*pGn|;A8;ge(tFQ)Q|wZjUYESzpkM2ey>8MUk5Bq1Yj4RMES)s} z<-LdDJqxx!{?Y#2?xgR@#cWo6^%Xq}+JiqvOCMbM!|lT1oj=z0Jcy}Lwpi@{=ds`( z-Qs7FzxT-8=kSvd`v2jNU#zl((0z`1J5F!VU$?EE-TY;q#vj}>jhfn3vk;pP8d9us<-^{e$Ys_Ky2oVs{B7Gui#AKaziEN<7m?^Q5(c9q}8N zx+~N%PXjuFcV;!qBlC=Pf*toatW*}LXFk^F@P}8@3aE0$dyXUbH%xa^_{Un2$MPtC p!g6JS|4gzV{%zM9ETPV@V28V3mEZ3}g3DAu(w?q. + + This file is part of Privacy Browser . + + It is a modified version of `file_copy`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/file_copy_dark.png b/app/src/main/assets/shared_images/file_copy_dark.png deleted file mode 100644 index b0aa33e20a9a339c5bb63af8364df9ef708c8812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1220 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb2PvM=$xyGBdFFMN{`D&|Q_I-APdE@pAp8xmDCfsD)@w@o| z>w|wUk4@aURx74-(fq|q|xw5#G#ODfdy;893~AvMv>(VUBL`TOKpWM*vsviWSIMy%-Q-k zPxnsSCT)9UR}kBVU*{jcKA?Tzu+Nt-pW15PzFY3zt8iEKz}{qI0n;$u5 z;LNbN=KKSp4|$KXFS$=pY^Yw$ZlPgp&AjLCk4;yqn|K&y`s5b0&aCzL?KPpyAEz=k>au{rs#ngjjlu2joB#I8Aj4cGOqo~>778i{ zFbGTQGO=!8RCWalKQwQwmQ)3rt#ge-P@{qOv|J<849902A_sgnxh-Hwn_>u(`=pm( ze^cp%fP>{sr2q!UO+fRRQacH;@Y43mzaw>M4pvdr+@tZ+7i}z2ze=>1J<^6I=S(0H4oJ+vbquKDth-Ja<1_w!| z2@bHx({pCH#lm(f5X}rmTswOvCjjhL(|6&9>$jU&RVCDP3Kww6n&wmfMNkqg;^tt z>A-XabXxdgc8ME#?-`9)K6rm&VE(=HJA)+C551~}#?t?9fr6Pp!QB_C8$S3yyz^J! z19O4<7oFyxycT(BvDGU+h#ojo*7$w#bBPNx?@i|C3}av@zt3dHJg;wFs(^T7`q?+{ z?=dgsU^sA>pLu#?`=WHuchV15UOjbF_m9vAedFJ<6+Ayws-_*WW12VP)f4AM3=C)9 zteUx(!-ly=+SXqwydgO4+p3v=4WBk%j$!)t=-u(g%Lfb}XcRcVaoPM+_{Y@ja`*UI kH~Tj}?f`-li~cZ2*a`)&iFkVsSmH2vy85}Sb4q9e0I>@AE&u=k diff --git a/app/src/main/assets/shared_images/file_copy_light.png b/app/src/main/assets/shared_images/file_copy_light.png deleted file mode 100644 index 2b8a6849a56945277f44a1994a1094a5228a6b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~t_dH!3 zLn`LHy?c7KZ=%HUkNWJ2B0HZL70#9n>`FS&(l{mP9}{z`2OFC^o6$%669TF`m+?#t zIu)Tgea5LHOC{dKuswfp_x-KcKli@=S(|nC%~Q+QHRo@=zjdwXz!@O8H1qPsx@8S_ z55y(tZrHW>@3vP$A5^M3>~vWCnB^PZ->b`Y&*saT|15M*nREg3jXM{0#1if>d}G?) zuvGS3663SJkF$CYnEp8{-%`l5gJ;dFDuM1msRN1$=T+D?N-SlRnSVk=Y?(^K(F6ZH zd6Nvim~L?C%(|i=wpgX1RCxBGSp`!V>x8D=wV2*$rog9Q$v$BYv&T6`mFEnTiWyE? zHawAWC^FsN@-@|T17`%Y4#&JyweOAn7oB^&O@T&oK9JZj_uad=c`e5eFiQ13sQ>yk zpV7U+oV9-Xp>G@!VINJ~1EZPeq?YV|`0Iru*ITA{7ZX^#80WB@TU@*A|LoWU&Iy%Y z6jVc)Zk&9PIqTY6hP=xcW;&=gaKF&=@HQ<~3*bml-=JUB(Pvr=WIrhQ!tj6P7o+u^ ztqYwP*4m^O$XkT}kow6X!gNEx)}b-;fzQM2CD&QF7}s>jEx6!%>O9M)Y^GKQku(j{ zvkvE2bmeM9#WnjA*gr5VM|~Jz&^%HHL+6 zLA9^z0|vFlGl9lS98xM!^L1GuaA3kocc7rZ6%+df{+mEU>Q#V-{GHSdG-P2M>lrsK zpnXP@Iu9@&nb-j&xcY$vckcnlj1@aCZs~GjxVerg&G>AE`K+)&jstbl&)+WSV!m)W zn}yFII3H;L1JeU%syY)i&OiD7@cI9VCK_Dn4BSs(aUsI=A=E*kl|g3$ERKRX4s;)I z;9`tWfJNMLfd=u$MiHhB4oI;H6kN~5q{))d2#ij!c+APkj_Vs&v({geTCjoXKbwy$ z|HTcf-Y>k*1dVqQrhtg{B})YwSc_ok0I0E*p+;1|LlMB^nW?A0oC6 zhwZMt1BOfaMP`#Xxo`PIm?{K;f~)%HIx(0pX3x0MdrMZMhHE=d1?QR`xh0134Z0!g z7K+R}@sp>9mCuF$(v08(i(e@2GGe`x_$7Mhp1;+*yN~hbFArll-)X<&)$L%n{MpT0 zSa$gRaSXe=j-mUQ-7a2B4jbiv4Xbnd8*4+|OT@Us8S6K. + + This file is part of Privacy Browser . + + It is a modified version of `file_download`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/file_download_dark.png b/app/src/main/assets/shared_images/file_download_dark.png deleted file mode 100644 index cea23b5746700f211ba67c5f9f495ac3a0c98683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKL}p)&{)jco9|?{P=mtRdA8CVM5GB%(gE@%*sC&FMWKtP1>pF!SreU{Il0}7>% zk(4*PCz!%=KUZ4bEM6#;rTTa~+x8Y#_YJi*83GJ0ZWoejGK3ghTrZ^6WQZ`hxLnAp z$q-|Zk#*etabY4uK?;lR@%Ckm2Lc7R$jVExGq}54sH(}3W9aEy@b`y-0)vF)!H$oK z9t;LrO@@yTFJMS;VOe~vJ(1DjHOH}D`>@cvVON*GdR!cO_idei;3|KXzWv^B`wx69 zzb(=DxO}4`)A9Fdi7b8huQqYW?B5;UbKv9hidGJp`dQ*2W>q7Qxhvh}!H?xX`Z;9& zoBS7Od_4b^zEZ)T%YW6Fj{ARfVdiJ5AWT- z?)BlW=08auSVMk?IrsT0mT7->l{Or|%dY^7N2ocD`xy1otY3@Pzv>4jAqG!ZKbLh* G2~7a=y#v4i diff --git a/app/src/main/assets/shared_images/file_download_light.png b/app/src/main/assets/shared_images/file_download_light.png deleted file mode 100644 index c250e34dea5948474dd52bb4756a057b1c6bc3bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)luJLqn z45^s&_O7+xVFw1+i;Nc)Q_CY&S1(9Zj^q$IA>>r^D8*)fdEb*;$@`mKIptH7UH$p^&#%^g`@Cmrke~1T1q&A| zMLdnF`qRtNbo_pYLIs4e#9hGlpPDJtoc}-^wc**0%aQA`Vaiz?U8EyC@rPS^tjx>i{;q+73D0) z*?^w>|h1~kH9El}ZszPvcIU@cI3W3{ruKc>9i13$QLN;iHK zFUe&&7Js8&P{RH|K9D%^oufxSqx-;*gMLRr@xj0#I@kNJerfpLbLRUV-~E&9VZqoU x?0`n>Sl;%1*OZ_*seAcp)9. + + This file is part of Privacy Browser . + + It is a modified version of `find_in_page`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/find_in_page_dark.png b/app/src/main/assets/shared_images/find_in_page_dark.png deleted file mode 100644 index 2aae66733da0caf1fd5747ff185803e4140089d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2447 zcmZ9Odpy(oAIHC&xnJkfvdC>FD!IqpGi=Mza!Z-HC8<_x=F*ula;;ObgfyI_QSM=2^SU(wYB+8u462E21nA0%;U=*^OAnlCS3u35Abq}QaUO7jN z52Hi^@$vDd(U&jAM1+weO|MX*9xOY+#f=JBw5wkNOIS>+-tVs2pR6oLsqwJ-mTDbX zpCxCKZG1Sq1IgIa&;xSoI9Og(7--OsKJ1|wu6}FJ5!oX3-0Kvm@c}l$WY0;J8oYXX z9tIzMfP+c#8Tz2JW*zRUY~N$Obr))sn=*vY!f?mk<~Y5V8C9+G-d#SN9%3yjwZP zvLj_RUiSkhB$Xw_M3HxK$^FVXJ+n$o4h}Gmg1Lp7<%UKjP#YG*LtX{GXx#RU+TFx4!>NA#K;vnw8kDOaFH-Iezd8j&Q{rHOhfkwuTz#n1= zUU0o4?j6h|qVbR%Sn^65-Kv)LVmEo8!a9+i-3vI4nm{b*Eg1Bz5z;> zSeCZAmDBi(NJ4o z@0Np%0n%uVV1U5ux){2RCEslk=Nwa|0bQ11wdBi(eEBJFZa-)v%I9J%E*zS~WU~pS1JpMDQxF?r0cp6C7 zJG2teBg&>)O8ilh~AqHT@6{eqeS&;R-U1lz}!u`m6B z7Th$UL3mO2iq2AzCKu`t$NdTky!*EJ*9DZ+W(=Bl^k~!HX-D0gIvnrA6bG%9$)0H5 zsa;lBGktGOGnjc1Qb<|Zi9<)q1$}w}B}FVhv7~5AIP4vZn>$Nvy0|^}vi-bEEw~Z| zKq{NPW>n2NjWfo1RefYlzoD)B#!>6#icerX2=4#o8ew6M;If8*Jx2b(9cU6qNht3R&G zCPv?ykzB>;w1zj5C59yj$%`fc zPfY89Px?F>5OTgd$%nFE;?f5^-(XA$(@mV5YqQs)ApYj1+QRk#*}Qu)L2 zbKi&@g)1`W=tR%YO2^t-X{<;%&9$hRV_I1`GA8z^XWsjAoZsw%EjzM<=36zbGC)`T zD)CF!qiMQ9wB4$bg<7`?JLTsccdi_7bcq{q5YzhGNT*T;9KavSHF`L}Z<|A)DC6mPx{~BT@tE9jAJlDwKk>zNmFr zbvwRlpqB`1cvFN=MG;WmT5t`u*sugW$6bh|RgjZ$D+>W(| zBB0zHlk|QI+Ir((B2rooU4A}qnN#55hza~q>X8urS5n%y>%Fp`T~U5b%_>|GEy8zz zY1&K&&%cvsdqLnyxnU)beheKyGHeQoYotFb9|$+q%I4eh!%^P*?)2)K86g=uwv_Mi zo@vl(9E#{-0zO~L)(>>a++9O%YEXiArv6?E(k#B{2ERBB7J__?W;9tryI*j#5qrcd z)V zn_QVPX05q(<%={g!C_Uz@RU94cCedms(+=&=Um;>`(4I+)8usM`4nwfB61;^UMtKyNxW^pagUW>m8%pYd8#YfWs2L*y+ zqTBerU`=71@e*u9sO$z`3 diff --git a/app/src/main/assets/shared_images/find_in_page_light.png b/app/src/main/assets/shared_images/find_in_page_light.png deleted file mode 100644 index 4246a16d9316811cf2625b8574f53e6c835972c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 zcmV-J2)y@+P)B8b2!U>ortoQfa56UOA$v^}u z0KX(J0u_LNk`{pqAPmWhz?T4GEi_4)Bt@V#KvYiPywVzP!XsA(j=G&bQF*-K}4W6K-zd0 zfeIjfyo%r$Uj--3cHn2=FQB#dzrMf#UXhHnPF?N!JC}y8!+JJ_SBRR_U%o z9(+d(1kMA-0+%7Xn^U+?m&A6!gn7i>rSlDN4{)-BYZ(OG3w#^-nie{^mSD^y&P`g4 zoI>Jb6jA}M1wM~-ZCMH6Wy0Q^-+@~RH~hR2_`~xx1rdO+Q9#vGx$V&m3&(=xEa_Lz}}JUM7F@q1pbX+-wCp0k_3= z!h{qeTt#^r>3!SK4~guZj~rfkeC_``ku#0fB9X(^_I_ND1wa$hIqb5u4ar=kwLs63 zzEpq-z#?Si(3!3Mz&l9Cu544*3kf?X9|!P-O9320-r6#Z0=~4cy#~0nr0u4f?84OJb**UbZnXCa=rumSqi|_g&zQh8rtpyEOTW4@U$E_&d`?zWJWSs0i-?( zXa;^T$lnuKf}bPm#?|~WIaq5G_8r$Oan%Hvw!beqvfEL5!qBJDj_hXD1h^2u2F!Zl zH#x9bG)*z^s{(9vU^A;Gz(pjmnc_`Jf8Z$xHj6SB>1Y~Tct$W%tpPe) zyMH*QkwTZ8W02S6nu3vPA7GC`-htk{aBKT-Z(dlCssM_10HOReu?tLWC%IB6RRQ!h z$ZNBB!xod8s<$^UEJ#%VCbMq8dh^1q?f%}pupm_dm_+ry^X7$H+ev;vGu2T*qe0$} zEp6FgvOu-Ln->bz;y=sHz12Ne0B&AB3r^Y8T@7jaif({cpW!y z+gF&2=|0?U$Y@K4fV&NSsUYhBT-eWQQK%~cRFQ36rrdzr=3oynwS*rt9Qx2@1@JZH zcIAw~&D*yQxS)jn-pF}`T~YvV;O@e!$T4kY=!P8Vw7G=MUywdU*)Oa=Si)xA2*70x zP(_YkIoraYUdX%L||iyg+_O(Yq2sR&fAd+zvbz+X+LKB3sFHMUW#N03MF*gdy)C zozdjZ6Ug2f5Y&ZHz_2#U|Ue zUC~6j8t7eQJ|U@^z%^}KyF;cH>|zB)xd{0HMHM**p=>iWiDIXgWjPFtA%H4!9?yK> zTo2bY5}D>cc!bSRB2WPsrqxJ4;Z%$37!2G`=W_}+BA84u5vTwx(t6-o;4a{Dq^TGH z9E&`-6Oct7V}M!6o4&=+hHnvMC4dFQf9Nq%Gv$xp?QHHqBY_z(9e9;;B3K4okJ-LR zYg7R4u@%8o0*XKd;0GHKEG3`_a*hP1j;#o8L58(n(Hg)nHX?W%S;XR11S$akBrO6J zKp0$z;DA$)JhPDaWAYS}O|a;UlE3Q^tpUO^1Bo)0sR_0^_611yoWOc!I`ATiEN1Z~ zfbE{jtru)+0;l*Az;B+)ttXPI30%`e{0>(x$z}p6S-Jz;h<|f)Nj9ScD|{KPBF)Qq zPvzGe!;u3n79rcv>w@0EkHmkwa!S!^0$&U#%&{%?lwDa|KPO%Ngy zxB~gG!e;?&)eD1&dknrerXcJ0{~`WcmRj0dyEj*rzPlxewQ!>^a27JbVRAHlJ<. + + This file is part of Privacy Browser . + + It is a modified version of `folder`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/folder_dark.png b/app/src/main/assets/shared_images/folder_dark.png deleted file mode 100644 index f5df8e514d5c66f43b79f1b15e40356356507d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKz!3;$@cR-PoLR5^Jm7J z=(_%!H_m5HGAgz;p5I@)TlVa+y13PAD%nn)2|mDl?EjqnLUW~klDj)XOBNiTr~B>t zQ|6o-oNNdlp1H5L3&n1NH}TE>CROzx|Y2 z@o^2Kc*E=i`UlF=>dekJ>M}|^X;E$@r%0lp3YWm(>(JWHE@mMy``%=mNE zYc+eOWy%fjjX!&wUN(*4jA?F`rXPcOl-Ui&WzVZlC#5&M{HbDW|7zC_1|NTh^j&&p z441F`+`8BJfJyC*(uJ}MESLl4FlwBWTwr1CP{;=3DsC8XZj3iWoZcEP-naYLaYr+K z2=8|?={r|`wQ^Ja@8w7SGqnE>S+evdYoF_p)q365=} z822&7ZFzU~&>n_;IeTkf{8Z9Vs$;*_=wACRJD{Fv{=U7F)ArtHaXaGtK&C+Y#>?uy zs%o}7Oy}H>$k*~qJ`vw{#^ykr`wtll#x=Z!>;9#;@11V*z42{Fg>8{7a$*ItqgeA9 ZG}f!}|I7Ne3z(-EJYD@<);T3K0RV4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lt?+bl z45^s&_O7*mNT5jDL-9`YEd53|-l?}{&3LeMIrS*=hgJkrUBLc>Z3~*XeV(1T zzkVLyr^y^&r~TqB6$&Y8|J7^4BD!};oiKm&Kg$;{EZoyS77OttO#IbbEEG~Q`IoOT zi>-F0c7-qbx%zu4= z{XyY%bq&r2waYqZ^)_F6dXO!lY7IlVxBQd&4KEFuZP=fA$%P0tT-@ecx{cwEer1Dj z!mm5pmT&kBYS%HQ-tWqNSQ+EVP{&us{WW*@+k=xBYTgzIUcI<0 zTy^$enGLLS^!D`~+rm7Dv2Lqnj1gm5LwRi8lEA$SQ$H`P;j9U)hl_VxY;o-$XN z&X|0_`N3^F@hxpDc^@#c-WU02Ut4>qoF`(Dq%-${pY!I0@6Nrn=j3L#HO%{8$GM{< e9~DpGhx&)LocV9>Oj!&}*bJVoelF{r5}E+ecuL3s diff --git a/app/src/main/assets/shared_images/home.svg b/app/src/main/assets/shared_images/home.svg new file mode 100644 index 00000000..153f4388 --- /dev/null +++ b/app/src/main/assets/shared_images/home.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/home_dark.png b/app/src/main/assets/shared_images/home_dark.png deleted file mode 100644 index 3b1f28c29d6f07fc3b0287b0d9be9d956501231d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKjr1r|Nk$@A0Ox+}$`^T~r3_6mNzX1hFdd2_ct5eeC$ zF{P>dFQep>gr?rs0Jfi*6*U@vO3!_^x&C+WzVo$v;~)H*^SYq^!0$bO6&ZmJfq^qE zZ_|Evz4gzPKedlt_U65fe_Q_-pZ)gm&F%}0Z)0!Y|Cwr@yMJn}yjsfd6>oR1ulV8p zJxBiZK4IYvd((d}H@Eq-G(JcE{66uV(Ty7=Nx z(SuGm1F5O;@)e5&d)yxXW%f5|x~Ng};ec>&!j!YC+2>`jEY^v$|KOr5@%5SOgP+Df z5B`@wxI+9mD@aDOau-OU$l1$4h0(%2QQsJUZ``Z>a@UgF>WjNnU;1Rf?SJEZFXaW} z4Lhxu(w^_r?r&NquUdN}>bLIi3D+gd7`A;^xjSLY+l@~fmt0=E_4m#8J*Ot~_nIa7s%Jm?-!4H||QWQL=L4UZ%o3V9annEQrVttkA``h)X- z_AU9|WN&;ohP}YlYN?(7&CSvb`&rS{TVOYaG~pfd{@eUnDE9wq&ieJHN7M5@|AplU cC_Q6!J!6TW)ubJK{m(%{p00i_>zopr03t8TF#rGn diff --git a/app/src/main/assets/shared_images/home_light.png b/app/src/main/assets/shared_images/home_light.png deleted file mode 100644 index 564f597f35fd2275682d7eaebc671abc8c6b6310..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lZS!<- z45^s&_O@>J)k2B(kJ&~#O-BzngG?@uh~ZB+4`1Vfi>_!`6yXg~0JoF16kejxk7_xpPp z*O}ESg%ll*cS@@&Bp5HS0UGDmT$0 z{vT(a>et^Ce^57BJ#pQq0?9Os=E-q_dhKIi|Z>3eiZ|0+vTtxtk85ZP)4#xLjQw{eyM?!DUeDvkOI0( zKh$8BDv)wDn5Fx{CI3}|N%n)zds7Z(d^;e#cV$!HG$8e`Iq({gQfv+c2`+4!*tq;m z8;2X)yiKpIBqS?dy%E{5`Jwg7V+VrEV_B7%{b!d7_VC!`UN-?s{)+gTkn-SVaVSXF zdr@AXF2ifN22mIPot8{pExZ5mTHf#OY)3yaO!|xsS?By^Xr03_zsdfy*aw9l#>ud}cCS<5{6oPO6@ Q0h2j{r>mdKI;Vst06D>VZvX%Q diff --git a/app/src/main/assets/shared_images/image.svg b/app/src/main/assets/shared_images/image.svg new file mode 100644 index 00000000..237e7e61 --- /dev/null +++ b/app/src/main/assets/shared_images/image.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/image_dark.png b/app/src/main/assets/shared_images/image_dark.png deleted file mode 100644 index 01fb717e320220ebccfbf86c1f751293164399ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1486 zcmcJP`#;kQ7{|ZcICD9+CW^`-OL8Z2$(^}O?$$ZwQm)giMJ!`7n^ZKNYDZWbTQ76) zQZ9w0qwSznG@5dWa_OYh+#<4B&irtG=npub*Xwzn*YmtT&yUYj5FF^Erm{l?001?# zFDg`CshgqnlRS62#PrCELYfB}qa@c^rTBb#ubkq0Gz|a@k8cJ@=R#YOe5g(IIzkLf z#u7;}sR;myL^8*n!l%W>q$HRprzW!IoOS?!;vqE39h1SHeG^m|6{pp`IN#ai5qmB; zT=jMJTz`XG$0c?8pSO9o1~pxebGwT55_S)YFg&{V5#sJW2H$PAr4x*Hs%c}ILo_w% z#a6R@u@`IxX2!CFQg&8vb`Iw~QR38>CA1*DmA0grmok6QNNYiz%As(@lL~{NT52t= zGV1G2>oCFTX!UQvunyvnC>uXGm6sr}ov@mi5=*Y%_$eLS=iRl~+ff6$N>p7iPszqc zN&Bp#vr*z6E=hRRlvxIzE6A5=KMDm~O7G+Vt>zWwYDA4zGkuDY88M{8 z60n$Lx%&0cwp*)c^1;1xEAUCR@#+9bEpqAsLtncdfWKpnUsR3`!(A%`#yG*9uQRz# zZr;Et|LU08vEXpMIQYVLm&wmP7*u3vs2&n9z8y2`g?i!KOWt{cUIYntfO1n|Ztr(d zpE&^6(*WZS07eL^X8%868U~4=HfGotL;8C;g2(y8ihsRcwbWiOZN>g_CEpI%6JWWN zvHn1^t9se$G)%CN?$uSC#@E9sE-0oPc15l^&?>$dEOd=ocy|Q}Dom$jREXs;I@%M( zE}w@ZW8w4+*9l#a>Q-yJjWR`kO}C7iqd>%ua#`>#hyek1Vrb6iS+f=-MJpqZ8Pxkx zWGGPWq%6h0ft$7f>r$6>!o&xMA!^r;Vw!0H#e_zS1 zbN8nYQ=qDslWsDOajI6;(Yl7K4)e3e==eJxqJn?q^dP=5#57dojxIUI-Oyw_M1NYs zPMygN7LD-koA1NFWt>l+wL_~?%&+lYF#@-(toen0sw(#*R}vS`#S2H%uSFe1;;Mrl zGl(1>KVoIgQ}kRXk|kV)j9A}08edY5x97z4~Q1tEZ=L4+ge_nx&B-V%L-FhEcCWd-jNxA0}9L;cq zN&nycB^j- zsU(hBjefwROGvM({&vF27ls%J>PhfY$s^J|B|{gQ@6c6Ewt|LQsc5`1>pIuO&K`!Q>!1?1}>);3Ja zbm?CmBY>}x<>Y0o+}0Za>3>TSSm+b$$ z1al-1rhMR5*%Y3GpmMe*9dYdTQ;k=ckml_e3|wsPQxZrwv2&&3epv3W;EU7(QTX5! zo0Kq=M!SjzAB^hS({Q)x_X8~z%hR46CIFR(r$Pi@3dy$ph-dw-X%WcS zrBM{s59T77Nnu^{otr3`R@hL MUV*4OkLcWg0aFsPD*ylh diff --git a/app/src/main/assets/shared_images/image_light.png b/app/src/main/assets/shared_images/image_light.png deleted file mode 100644 index 3e4dc0c9d8908c1de3ee600b923887e06df6b996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1288 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKVHUAq>Cy;O)gc=G7MrOnNoJDQtkcV7z; zV0n3I?V?4OPTDWnu|?yeL{eZ&Sc`&P@5;lq6WS-JeV_B$_IY*n{`ulECraw-Dn9L1 ze_QP6f(nj3>+7nOXNzO<^Qo`nxDj2r$8aXYe&*8$!Vmm>d478<>x1M3<{c~3F6A+J zAE-HGxx<2M&7=K^$+`QPy7&4o-sqYj``=fpI-0%jtIgyzu@{$K?zIfOB^B!%`bMwY zui<;+^4?#Q?%p-eoj<)S<)cV}#Ez!e8B6B#KH&He?5SQZ_uR{R1IGc!W;>Ph%1dPV1_1o zp-X?6_H^x&d0l@me$Jgue|c>zW4~83&p5B(^kOfg?(J;j*Y}uf%o{9se!kZb_V#k_ zwSNX5+CT5PQz`G$UB;OW?R2Myz=h4jlaJuR$pU&w}*d4+HID&7aQ5< zeQmIQ@4V{fJ#GjLzGhv|u>QhcueHxC?oaxs#M2KHJAL$=UHklX7U#4+Bs{Cz zvX1@E)|fYMiY*SXiyoW7;4k{d{WVb4>ehL8)81I_>d!h|7^i=K(z34&yT!WiytMpN z_kewIp`G^K9?7+@7|XYc-*|5MhofL`!JPMv)t|N}M(YAaO~t?K|GnSymFK5FTRmfc z>e{+=sBqY$n0qHAl7%Y_OD}R}U1xrmrTZrPQ=CVoTH%~><6|D7o8=0^lLNJ%*tef& z6tC_po>-P|yEc@6$L6>TZ&Ll&u{X$9(rVmOYMPd$-oYFMb-(pO;vd#C&@)i&^i&RaWOjpxxTB2X6O1%lx<~CtF=}J^P)h zKL4a|*|zhCX4*c`D}SW@B>r2ECy1SXNo=}pa!?Tej?*)@TunVc@LKh#-#}*2>qaH9^T(P!5))k0SLkRVCwb%crTje zfjKB0U%kYq!}MXZqx_`h74LPKJ}d>Yo_7NU^_ut?!(Xg3TsoKcK_HhstBxJxv_^lP zUlUEdd0t$9Z?nPe-u$+!mu_oq*nj<`NeNHH@%rLp_pUXnSIzS*c7M6g=VtZfW4Ep~ z9KE;vVT#<3j$ij5iLSiMV7KJZ@w&71TD1ZeuHWx(=40eOaIfoe@5z>TO}R7Q8UD6m j*7|{34!ES;_{V(f$!(?M`g`Mmr51yytDnm{r-UW|=jli6 diff --git a/app/src/main/assets/shared_images/import_contacts.svg b/app/src/main/assets/shared_images/import_contacts.svg new file mode 100644 index 00000000..493735ed --- /dev/null +++ b/app/src/main/assets/shared_images/import_contacts.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/import_contacts_dark.png b/app/src/main/assets/shared_images/import_contacts_dark.png deleted file mode 100644 index fed4238e6cec632e3fb421d48841fd6b9218bb2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 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 QyRRB>b@V`z94=@64GrAd-~a#s diff --git a/app/src/main/assets/shared_images/import_export.svg b/app/src/main/assets/shared_images/import_export.svg new file mode 100644 index 00000000..b04d4813 --- /dev/null +++ b/app/src/main/assets/shared_images/import_export.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/import_export_dark.png b/app/src/main/assets/shared_images/import_export_dark.png deleted file mode 100644 index aae1e03efe67e10e0893cb3bb5d101cf42b2f705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa}CC7v#h zAr*7p-nI3+6Clz0@O+@xwh5|BmY>o~Q2a8HO|A0>xAaN9ppE@H4QhWqC+-xInwao7 zyZ-yHJ^r~ftc&AJSf|M_0xg4q3j&_jp4V?acW65NgH_PNQffZO9FJW!iGLoc{jQ0) zp#50*;Iv+u`5fCkE?sT;*nRs=@!}@)K7W>IgW?*c7m-Upb}n$A^iA}*{<}^0#oZz@ zfPx1PJr;I6tx_8aG{o-r-$yg29#?Ogrqb)rqC4S>Y2lwo)!&{cc;@!R3mlwvh| zHIA3IzghbKvEuK~H%+$M)+LG_+;ENC)2g%MvgH0p!7ep&m2d5o>dsZHJ)S60cm7A^ z6}6W+hvGj*eygnhsP~)Uge$`{jsr4`Gn5&MSrYmf&ImSGG8wod3%;xU##p8J(nLwm zE$*KI&*8_Dp08|WIQCmWF!{al4?)3LmIL7!ny{LLBv`de{X_Vlz1Q>JY?W9zn}M(V z=DhUz$=N@+Q0+$2fpF!z+4bz_Lmw^-m0upC{W9}d_QwmWR9Bp350iV$IL$lgwxGd3 zsViwLJ^R(3+HLzM(ZBKh0yCwAKR%~=8$L!)5Mg}0-Q`l<(U0#p-Pe!X5X91Re^aY+ z!XG)0T~P^tZom27%Bkgk;D_xhpu+Dym!9@~%-?jrpX;6kr(vyH(!0_0-R; z_0xGVl|$nGL3^cy8g+L;gMEvgS$4kxCQSse`Of}#QA=~fXFdavpr@;!%Q~loCIFc* BI?Dh6 diff --git a/app/src/main/assets/shared_images/import_export_light.png b/app/src/main/assets/shared_images/import_export_light.png deleted file mode 100644 index 2b70cd7242a7c4279395cceb25361340ee60b143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa}Cv7RoD zAr*7p-reoX>?q;-@U-$0RxbthMcf)K5=&T_AKm5fWtjMT0fSHxM?&k7;x~6^)~CJy zx#Vn4W!QHG_J}A>phYmSKyU7n&o7)6+|*xweXPV}JlF2HI+L;cFT1+>SeAL*tba`H z1bt#o{cte|JnkjGf4`oyU)M!lW1!%X2_HKb6ejohv-Hl&-1G7G>s2pg6EZE2sW-Vj zk(tk-RlexYC{PM8H0JakUP{#*X_ z++)AnUdi1zYMR$-tfA8OH$`#u>`Ug4^Y48`^TbZ~51}U3;%SIKY<4WBbZ4_a*PF zoXGHl3%eey27v`*y!Ug~T>72=HYmQEMVHlJ`WErpj+GC!F|5TjV&}AfvNl&Pw1?&D z{gTe~DWM4f%55X` diff --git a/app/src/main/assets/shared_images/important_devices.svg b/app/src/main/assets/shared_images/important_devices.svg new file mode 100644 index 00000000..ba5e4c2f --- /dev/null +++ b/app/src/main/assets/shared_images/important_devices.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/important_devices_dark.png b/app/src/main/assets/shared_images/important_devices_dark.png deleted file mode 100644 index 0c4667d6ff99c02c4630acae17c90e77be4e57ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1806 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 pX~W<0Yny. + + This file is part of Privacy Browser . + + It is a modified version of `info_outline`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/info_outline_dark.png b/app/src/main/assets/shared_images/info_outline_dark.png deleted file mode 100644 index a376d234be499f3d2d38fa727844ddbda4f72055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2971 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 LYGZ1ZEhGL9|I)fF diff --git a/app/src/main/assets/shared_images/javascript_enabled.svg b/app/src/main/assets/shared_images/javascript_enabled.svg new file mode 100644 index 00000000..daaad383 --- /dev/null +++ b/app/src/main/assets/shared_images/javascript_enabled.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/language.svg b/app/src/main/assets/shared_images/language.svg new file mode 100644 index 00000000..a1976d52 --- /dev/null +++ b/app/src/main/assets/shared_images/language.svg @@ -0,0 +1,28 @@ + + + + + + diff --git a/app/src/main/assets/shared_images/language_blue_dark.png b/app/src/main/assets/shared_images/language_blue_dark.png deleted file mode 100644 index ad1420941a51a568811514551d9949f5a42ec39e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5198 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

NqXY~>jCa>&nXvF`r0GiB6^2weg%871@ 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 diff --git a/app/src/main/assets/shared_images/link_off.svg b/app/src/main/assets/shared_images/link_off.svg new file mode 100644 index 00000000..df8fc7d4 --- /dev/null +++ b/app/src/main/assets/shared_images/link_off.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/link_off_blue_dark.png b/app/src/main/assets/shared_images/link_off_blue_dark.png deleted file mode 100644 index 0433d2a6ae98da5baf0b9353afd77a04d284862c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3287 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 diff --git a/app/src/main/assets/shared_images/link_off_blue_light.png b/app/src/main/assets/shared_images/link_off_blue_light.png deleted file mode 100644 index 9d0cbf2e5b3c594a93041cad31ff35178ced2e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3211 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 WD`;{%s`}*P0GJtD7(Fp`iT)4b8?7b) diff --git a/app/src/main/assets/shared_images/link_off_dark.png b/app/src/main/assets/shared_images/link_off_dark.png deleted file mode 100644 index 2d80b53edb4ca192128a832908ad525b4605c7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2150 zcmZuzdpOe#8~%+stSqtQEPc%s@)B~GSBCJ5AtvYA)Fu{|EvLjbB6*1w<`5EL5#33Bo=h&Hh%AHR8M%iun^-wCF@G zawQu>hIu{+`?7tqJ--!tsI5H7k&TaI&rBr1tQnTxn>sBPs4qKa|9`lN+}CYMA7-Qk z8yK?WE7W5qgc4FQP+~JeU*Xb z7IPIxgUDpy0Fc)`TfoPfH;S@*gt-x1LSS8kF5RHXdgz`jLdRWr_51D>U5?l63M3ag z?owsxsRwzdW1io`4R;Cj8MJc3R}_hbDeaibym)TUX0%3QqM~vbX|cp zsHoP&xv;1b%%U9-X3Onix3l<=r$T=nm9J+*=wwCEgAd03|E z285moKC|m@P@7QG;T&QhD_As13M~;|3kS4VHJE<+Z&UShQ)vQyFl^2Go#$Y58=#%J zI+RU#fFrht+L^rj{%%6vQlJEO+qLJkq_Hw=JyCN@tdt7*WfQ%|sydE0ol2kMb>=j2 zMFr)*C>^Opi3LDQ=)Gu^>~Q)>0&qYDC!7H|62+sXHc%_`5fjtdc(f&nX~s?C&M;#9 zYJPeM>M=KdVd966B9R7i7=*1fMTin+-54C;HEUGWt0^r<9n|HZ+@VopBh&r@<-nVp z4K9N9t}cI=5zBV$wCy&8`voDjj>Bj~AEqs|w+#-Hfc3 z3QkE6RZx*wKufgFWc2El0cHoiQ@Y(=SaUc3Zw|^xW;lPCf7fW*!`SzXvB|GB(fI?e zi1FEr4-M0%rN1UyNeytl6#G-j%mg`Sgwx%gJJ}Q}k?5mG#XI-U#}zgkR2L>`Fm5B8 z8rR<-eY9hqg*F!H^<2uV{(SzE*H~3MPlb8}T@!y!^C;HLpEUKMdo?Y8fU=A+6N02fu z0l^v@ZXAB`ftx*~4CmJ_>pWalX0_V2@$YvNaK*_!SqAuI&fnX`E-hYnLP;&kq_q~- zmEL_{YTIa^^sCCHq~ueZpUmERpH^^itHfA8rVKpzP{|^?pPecp=Zg@GRcz*=uKxqM zrM_!KGIx~CmgqWBeG$JMB~*^ua$Wi0|HBj_P_XF?EIxlLPU4L%pd_-{bMNtn*KmVX z^5hs?|4sd2bqNNH-ns(ca^WtF^`QiQuTvUpWC(k@&Up;h!;aNf1UnC0Vl1~ctFNGO z=)|2x6)3E|MSpv4?$!KD-XbRZ&E@s}$HJ;}sW7@sQ~gT!)$pMU1>Q%Nw(exOhvSsoA3Pm9;DfvF!A?_&?3b}xYaKe6lEfQ2Rs*&Gn zrfP`RDC0q-5G*qvJ)Ryb`meduU@ynSxmF*|TYMcWQxF;d0@GiT`h z`_#jb^{M;MmKbK!b@h0QB-bRX-rKA6{&iWceIYhXa?he9+~34pQ{G4~=UBBDZ;=KD z-=QUPdQz^Al{O1sz)Fna3%0ExN(cR~b6WE=%SL0uYl=|s5t|*nN8n)k*OJqAYE8Xm zgq))4NX_zCLj2|w(Syn?h+Va(?5rLK`yDu{_IqdPuxK`cDb@$;n^nu diff --git a/app/src/main/assets/shared_images/link_off_light.png b/app/src/main/assets/shared_images/link_off_light.png deleted file mode 100644 index d85bfc6b40a1012077c70fe5a052a0eed95bd074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1907 zcmZ8idpOezAOCG;HfCmS%ig0xNMX5DZ^>ndN%9bJMh$IK#9V4}-Gz?KJR^x*wsksK zM5ME6luPH#X@{<_To$XPyfM~Mq08%?=l$zF-{<*$zMt>s`Tp_!>+`u778+=%Z>bLe zfFU8sKU_N*8x4bMamXuPt{sp}JmDxzTY0dPCE6WM3yR4EfY82;24$X3GS!NkvI3&B zBGM>X^!N-iK&R84Po*YjCdSjq&S@Fcx(vd!lE_GmtdL6i>v&UK zca^j0rB^C-lxjdeuk-IcIv zama(G|9JQDmZ!%wWla3}c=A%_=(-;EZG6L>dv{)>jm3PON?y{z!?qTo{sy^Ekvkzs zmwl*;#&gPJ0{uL;ZIWXSvOvv)93Gs8oAcum*&bAZZk8vjQ`bguSN8wT>tz` z8`{C595GM`nrAMhU+Vz=Q~o$g)B-#r@!?Tm8~qY`flr%I7Nzu4B9-H&4LeE=m?O`B zf^63v|Go;5fRnh>a{rJAXC37Pf|G9r_<8vfqcv#RrW{n9sde0Xpe6m(jaAh1cL zFH>Dpg_lp$cmuEw9JmF9Ox+q1_-C)XK^0HSmXaKI&{k461XccFw3b^s0$* zuAM_G5J@t|x&Qb`XJT_UzuVsWZAcgebfZ6<6mL_MpU!wvOMokT8qz)(8gMZETNT%~g+Ro^04QQ?!+^uR&t@7z}<_iq8Z5c*eQEgThD0%tMv5o`!?~kx7*^D}d zcjwAiBjw|dTZc?Q1I`03q9z0jN$CK4CMR`N*w%2)m}Ba!TXGS;XJ1$P z$DE3Sf6?KqW@aWjbx!LPd_Xi|F;^0&MjQtSJ{AS}aojTvWJ)h}OQezuQ}1boRAW=d z{I6d8>dBsihL)K6wLs*e6Y$9oM zjjo)(P1{0a3csNh$H%?t!wA(<4ANG>Y`y~$6bLzN- z@J#=8aekZ&%=3m76x2DH*wBv@38o(xgQXSdD!k=<-|fN)JIz(&zQN(Mlw#M zaL7QBy1l?q2)aZqu_ufaI>NA$wGn0C1s&jIQV$j=|~-j;ySSbgqbZ@T_{-}now z(w7r+#CQbgAm}^dQ+4s=)&3RR7eROI=6;$gQVl_8f}OzM-o&&U?wt-xtDOV91oh~$ zA@6jH0LG^arS_QjPFV8g{yox_{ZLSwNEsl(;`2MlZ`T($iby*wKoMp9nDRqdqFb^_ z`u2Cd5d()bhdNvU=g}VZy2N0;&R5;Zf^Es7J~=i{WntK^mG>?YiuO5h zh;%+|wylQQ{R(}+i<$Lmw_DZ4$8>YEHMzZs=DyiC8~C)nri6-%RGe$-ibIb*3&CMl z2T+M+(p$NYnd(!5p6x8xa3gegLfscS5NKb@6(g9D=`KEwSmAz7cn}Ib)jPaPJ^1f& zK0FUboZhNSt|H-5aZVpnY+e->a<7#6My0QP?&<@&LeOO|V>&#lWf|o|9OKnARz;zXxK-wWwgs@AP{AUFHBNz}_koynW8 zi{K;W;I&w{QQh{DXc<&#pd>0(qr@)g9gBU;JzpInr28b3(e$LrY`Y2b;b)APObsov8g1;^w1Qc=v$7;b^w}pWE3*0hoJ2x12;4)=$i91gt4sonLUV{u1 zSss!AO584U@$B6>rb{rxQ+xHYZ|A~3?;U2!V8v{ln?5gqC8}CFmxH_6Kie-Wx_|7} zaou5SU%w0l4V$VWKRk=C03T(#Y!^ZTIvn&~kLk-^eMTW=v!)3O`&CnM?QeSg&0I@R zePUVsrp1w#c`n~%n{8HZ?LDMriN40PQXs1MpG(uwo&T3g-*jgw)f2%TtEs%IFOcO<-?x&xNw+7G~fo=Ha9~o nzuA#@r~2Lad&+1-#~-&2Mhm4=xU^2NHXs2)K&XGa)(8Fzwu)9r diff --git a/app/src/main/assets/shared_images/list.svg b/app/src/main/assets/shared_images/list.svg new file mode 100644 index 00000000..56697d7c --- /dev/null +++ b/app/src/main/assets/shared_images/list.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/list_dark.png b/app/src/main/assets/shared_images/list_dark.png deleted file mode 100644 index 495dd2b2cf07cfd5825863fbb6b1e6025290395f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKd-P}1pV?uX--hS%h-TrL5`rQZl_@&QSZ2i4-=bRlozc9s2 zV>raAFb9PIoA%&UZlQ=(^^}S?@A^;9{2p3b{x8gOSM@iI@6XS#k4@+?RGa@UT|Z*K zUaxGc--~yl_ZP}HW0(XoIQQfC56e%MA7?d=U-jy3Pb}EAq&ms_EE$>x%84v6dN>gTe~DWM4fOvajX diff --git a/app/src/main/assets/shared_images/list_light.png b/app/src/main/assets/shared_images/list_light.png deleted file mode 100644 index 786df41de6971ca045bd79d0a8b7aa2337957004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l3V6CW zhE&XXdwXLplcPY}MaGM5zZ>i}a2Lu4bS&h*!`}Mf&!W4#Z4-aopL}B4MV9zu0jxly zQNe-zn. + + This file is part of Privacy Browser . + + It is a modified version of `local_activity`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/local_activity_blue_dark.png b/app/src/main/assets/shared_images/local_activity_blue_dark.png deleted file mode 100644 index 2ac47bed6f335c725d399c25fec1ff9b635c6316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2891 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 diff --git a/app/src/main/assets/shared_images/local_activity_light.png b/app/src/main/assets/shared_images/local_activity_light.png deleted file mode 100644 index 4e0a1539904ce34fc0c274472b0e5df656acd668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1889 zcmaKt`9IW)8ppr0VJw3avJ7RHeK(eDVGLOk;*edV$U4S8W@H^2`#IJ~qm$*7B}8Ph z?^$l$A!W{FnPf>sNFC?ipYMHMpU?AteV#wy^JF>Nqj@+*IROCR!B|^3os#&EIoM8j zzp?N5DWFm27-x>tN#qE~Jk9WMYxgJskoW$_Ao29BTc<}6oTVG?YS;~2jBjKh5EB!l zdNVXQ%HKCUP&F(PTfSu^3IJ^HF&1Xdu@#$@*E3yQ1c<#e8pET#m~jCm=>&yBg?NP> zd6wi@f#&M{wIGR?UOO_nZ-PfCGp3UD!)wZ?Gu=&W2<9;f$_HtIPxBxfw{rSbl zgs6v|2aBz*=CRvJTVCgsr?nEM8ru#G);3!A7d{bd6v+QaPVo!Ml~|)D4mZvTw#Usl zuR!f&V3>HF7Rspcj;@Bpf`p-piuQp`3kTwM=(_WvFodkaBc>Gs#8sA494!P&UUBvu zyjKDKO@>lp8EP7KC^?4lA@n_S|DeS?R7WkWyqhtJIDq+3ZCaGWQ1Q{i*jeG&*`^+* z!~+e@EXZYm0-4MC*A-7K=ma!D=-aDGal8u1rdh;zk z)W>CRa_W?*Oiofqn5D9o&h1Nc7$2nwQ94H=@O{($Y}mjC@QGg@#j_XxW>8GSkXFY3 z(`(I+>(#(Ia6;pi{?Yq9UfIAen&=Wu>G|+$7GLHJD4lfh37LHM+iYvIJjvt} z(gYq7*_a*UhayGKYNk! zVP{O+|5WmeB-)Kc;UbH%RVIGl~X$PBS~6q;11K{vvQ14HyMx z$6VBMwW52%NCtSmuR9n+@DGCfg%ee1VIqWWEJJC$3yS7Om~<&W7W~X7C9B@7UcFC)8Fk=ddI0 z1fl>j`Ym-5x_1mG1FEFUBj>UjYdTp)oWE$V#2^hWskwBkaiU=n5p=D&jveAF&z z^JeT6ioRw;S{4K*MZxQEZ!%aRLJuOE5W0Zn%Nwv~H13?!Gj3fv^?Es~sJua5Ng3%7!$me{7xl_IMra*0%I*e3pm zcsQ2Q8zJW8juRa9XtpurRcM81$M36N(hO?7%v#q#l%n<_2V(29PN{nwsDAod)Y-^d zp~||sarz1!vH0+%Z!8_-!VD)>5eXCi&H^ zbYRkubfzdEH-3OyQub!Xe_E1z2JGI%-*mU=4)1EAX`#cD3j~G496U3*$D{TI$~~_P zt&zs(@?{i`+{*V%=>@|T{Z|Ae$ku8!uejLajYz&{wWDr=Ll%s. + + This file is part of Privacy Browser . + + It is a modified version of `location_off`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/location_off_blue_dark.png b/app/src/main/assets/shared_images/location_off_blue_dark.png deleted file mode 100644 index 79140dff8e61255a2d7f3fcc3e69d7129ad0dcf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3280 zcmZu!c{CLK*ZKAbVLB)v^ZmIV2{sRetaXqeoUBp@c#2>81xbj`w)I(4PNLLR`~D& zRk&IsGH5BW{t}hjuvA`>MV!!su=jxb(wwC)2*b6PHMFYz#bqOe3FWdAfmKE)JQD7e zY4B~Kqj2Z=dOTMncHN|CF)>RKnzK{RE35A4+1tmO4s>QUxAWGoP^kY0r9Y34LAt;7 zzYeotzl$&FnefT!vCHyS0TiqvYhVnrwF|7Sx(F^hh*g}zTmW8*{!g@UBRa%qU`A5O z6%5g2m#16AV{~zm;z_4_#6FQDn&wmHvK*{!pc;jm!8cR-fAxpRBQpWA$zuYR0-5p8 z@ze{ZH{KV2<#AE-nj&#MW4U@I`%{=IDH1|IYrb=um&uJHvwsUGulTk8_8s0gwrzlV zn}^sRT~QT)IV6-riaLL}VS8gC$Ndg$o$Dqo9m?Pmb{am} z08?60yd$mP8Kt`VMeX7TZw_K`-h{2OpwEwbTK#=(2UZn<47gI4>%O^|S5z~;gpG26 zSUOoh!y6tyf7egz=e-52sZrg}z8U`IO+Rn{q;)0)XGxBJX7P6R4@%XTZL}-wJq!La zT!#R%`aAD%Q77+IX{8LyI)S_p1WS4T3Orgow(i#jAfmjys#u;hnAy&M#0d8}=``kq8?QcZ;hFHcRy%N%*2fAmvaDeG?kr2Xx%Us$A_#+(0GqB9-EynRPq8W zUt$Ox5k6=W*wX(UT4ap^JFV|X4O`r`J#!eIV=oW=qap=8>kb+M)+D~g^6neYG0@!q zSi@DCNA4oIp?HoYdC=!Um&grG%9^+2Xt+Sn+oG{Oj26eFvItMXD zGT>CQ;N3g5>iv;!8r5igy=bPI-no9g3(mn41gMAD=EtOz+mB%SM%>?DNut|jKE}~d z20iN$Y=n%g2suH{eVD|WpfTG;_HCP((fde*WCLP?;68_rJJxJ2gS(HnA{5}ojk-T4 zTs@^Bv^&sc7On3i?=fV-l4}A0v5+=%d^k;|bd{dDY9l+UBUg z4YEe<$XR2}EdsvOwvKV~$$^PDnOsEYu8`rD3)VD85%R%cwe!vE<1I4B@5p`J4=7?M zVt>M{1Lks&3oGFVli)MM)KMmGvU5+!umYTK=g!^-O_EVQeOu&YY$OMm$vuVk^-tWg zNwSB0V<9zq>}n^Yc%>b4m1Y(Pz||GjTTn5jy<+w3bPTbbrk57J^h@KGNs0tY#6{r9 zSb)%f9*xDBk!sm(LHnv^9Y6S#bCXK2P3P<#smEKSr>Mwp99VbX`z2Gjr48>^%@F z<7u#F)=V4L z;a5>X5Ha(2T9EKdp<*%y_7=>SSyoFiXJKXA{fGOgsm7qnKn zsgYw|4@EXYJV<3jRbLA@fpO3jkBGb z{wMmn?1TY0CAAG82M$Ng5@hGC=x8zuyERi{)SqX2G!EW-2}VX89z{P}t3i=-N(iZz zpCkjf)=)Csu1M~X?A;TZXbU!>^PCSI$i5+QrC5tEG2Ov!u7}f_n57o%<0QusXLsQP zDGm-oPKat}pc&!+s&W!lrr~98M<{^vf2BRti#SUIUwz;mzrap^@HZGKRUxhloW-gF2O|D@;eqH?< z;LRvcj?NPBddT&JrIR)~Rh(gx--MRE3;|em;XkU;qo1qY{d!BJOsKRzE7&!80Ln)2 zY{d8cP5VUj_Z6KrDx8;c-6FqCNv>`i6xxaU?~xJ9uADK_ua?F&0-Oq{ZH`K@jMt}? z@Chc9w$rHe2m~P3*fU=DJIW6n5AN#`*RxjmU|@m-VB<_`oU}Zb>&S;;KL5>dR~Ww( zknZLTii8jqVd3*C7A}A%Q?GMU&EPu{#Bxb-5jcPm@pd$}@z%3M8jsKm@;$k`tgZqM z=>X8Nm@N@rSPQ1)5zYRa11p1;sF;Yc1R%x2G)0rfN`CEe- znRR&8kJDNIx9(eH*AY^B+&_6xC;)%V@2C<_%X89d#tHMgry-`ZG3_Z3xr{X?iJitF z8_RUoE(y+Gm*>mDi+}K2leDsA zY1YD&mnzS*wZkfhu5DQWL}q-8jnzAyvDR|}24j#i!|CmrvCRN#t;|vKSLk?VE_OC diff --git a/app/src/main/assets/shared_images/location_off_blue_light.png b/app/src/main/assets/shared_images/location_off_blue_light.png deleted file mode 100644 index b1bb20d5cc32e4e6a2711bbfa5524daf4c96250d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 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 AZvX%Q diff --git a/app/src/main/assets/shared_images/location_off_light.png b/app/src/main/assets/shared_images/location_off_light.png deleted file mode 100644 index 181aba4a77d6a8a88932287376fac57c040506ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1880 zcmV-e2dDUnP)HKD-~nJ4FhIDV*RwByhk*9@%`<8-23Ubh*AhXmW=C)tXJXu@ z8pEjo%YmQK3;aks20Q|cirDUC=>&EH(*)|e0@#6mz-!qa;QDB-PmnI)Fs||615+c_ zQvp^3edq_dk@e$-g|-+SkrJK2FPz`_eT2^h6MzrU31%LX%8Dus|K^XhkeOfsaIi)_ zMX(-VQJ}s^hHBsZkrpBoEC!A?sHX^a61X*IUnE1lZ+^&3umtFBvYsMXA8?mvUnIkH znh$Z%o+4Nuu+*b3lA!`@BzwbshlBMVb){~-z||gokqi}J6WJT?n+Y~})RnsR z08>2rA{i_b=*M;|1I z4F~>qlyiF%3yoz0e|yrS{YhdX@UtFDw7skXY$kgrwEA#Rin+iUQWwDy+;;D6z;@tU z+_rB`0es=n?xaag1U~?4aOVSRu@JXFbHKyzyfy&L^=Nm}q#%M*z|**0#LY4qcnp^* zBt@{^qs_^qDS~d`vK+oo!JPq+62P7uz9x-^2tFswe*JO4`%U_r*G>bM1n@aYD!{wQ zi6BeLZ^Ss{GQr&e{ceclI`klJgJ)K{fKSOTf`2^fszo0zFcJquZxpCQjji~9Gh%Ex z&&o>TXMm5zTBE=|@^wzk!zax!hWOjme-vwtFztjnvaKzGbya){X{Uh;r5Yp2EW&k? zrU(`_>0=(Nw^$Vv$w}bF0n7587>1x5I3BrzSoMN$Bh0+-i?yA(otVmOF9njRCe z{Q*VI0B4Xqnm(Mvk;|VDx%{(83LsWp8Y1WytSc�{AOp*`2^A$ju32FW2@)F8?f& z0*HP0p5(-^D{}cKBbTqjY~nvYNjxH6E6|475&c(V3~rG_LIg3FjbDuH`@gvT2&F{w zX0I5TU@Y;krQ09a=ekIrO8HK(t{8KIr+^s&%d5tL$mO3$nFRo0MKB9k8=#y z#y!Xl0U?Kj3An&W_F3N1_>VrfXN;{7K;58PXwz4{VP4Mp(lVr z{2vjY5b*6455Ee>Qgj87vIuVW@TqXLk;Vm(sfpkuZk?eecnf_243gHIV2g(zh2;+P zgP&R^xYNUj!qSdQdD_8GB@-MY>_L`7;B!>0teN0-k9rHwLiB^4iU<~a)L9C?LOm}f1@Al zS{7?K=tK96V^X|{exRjAu-T)$(lQ6P8B#mY^(^FY(2w8&(4ydTeN0g^!8;yhl%Dy> zZ5!7Vfqnbyum$}9H)DB*gSS0C*D}n-UGAhE;Fuz4`RD#dXm1&l7!Hg&Oa^{OKe#3W zMb@GpSQCLF?Z8jy2i8QO$o=RCHLGb~VOJ_DxT{~ZgKC*Tk*g@qW1)#45-I;&T+eJc z2t)_67fVl(18E{qRs1m#2r~)yu084C@1^zz&k8mt5al{#e>U#JU2stk%LKwai<|&fHR+Ry zK#)<$JQ{w43v9EP2n3l1{7Ssw_W+lA_+@hfL2e?qeqcreyJ{Tn_p z8~|1b*4;8p1`g6V_y^H>b5{lT>!JleBJ-)gwY(Qtpyr(+!fjN)ldzwXzqHXf$K(88 z04r5JGQ=6a8rPC<>}Yk`aOVxTBRk_a5@P(28HQmPhG7_nVHk#C7=~e#nEwDo!W@=9 SuJKm@0000. + + This file is part of Privacy Browser . + + It is a modified version of `lock`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/lock_dark.png b/app/src/main/assets/shared_images/lock_dark.png deleted file mode 100644 index 87a76590698cfd73d669b49ef8ea57a031048178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1848 zcma)7XH?Vq68$A0L3|NhX$zt(1`vdRMnOQD(*7W2MFdnJhy+8E7@7$}6a=LR1nI@H zfRqirEF}_M5K91!8za?-j}k&iP?|=T2WP*$Pw%`rXXc(ebLP{Od&kYi9x0p~7#=C96#4hNavI>0grMngX1S-ISnFAO>XM zPJtLn6PEQLUeaQl1yC#)<~T3?tgC@ngD|LZ9iDmaYFW7%$~nKq)8qr0{Y(eNusA_A4+XvDW2E=rWBDC zc|f$Mf$)x={$+>ZIMX+*Gy8C|E}&Mz4J3+<$6qTyLEJTLzU6F84ZaLl$NwZUZFo(o zm_R53C(0DPXH@>f_5wRXWrSSXjrD=~85lpw10sb|hGsb^9~6ExiO`l4*;sBYr7X-g zU4e|w#0?4ii>bJsh6{(N6LZ9QOwAZ#_%tE8ejX~zrA|Ajcs^bGj2g&Y@_e~BPiIhh zrwfaw8S}%HdiUyVKyvw%Cb^?}&Z6nj#+u=X8^JdeDyD8!`0v*vx9}G{qzA&m%2g)U5iD zC1kDe_?{qxkVBS)u4-yqw4mIT_Ak&k-lZdX{L}D@bLDr#7!zd~OSLqZ16{rO1v9TB zx=9MxCckD#_-bu%xZ`pNh;|&SL*AzeQQ_^)AxhVSLx2%9wy>LnW|gmGeJ=`TzXzwh z#9AQzkLYZz<<5k;kQ$Hk5)JW_(FvW=+0&W50;34QBiAsbRTU(uPTWOd+JeJMuooBp zn~X752UbtAp3A#;M`M>CJ7{a?6>0JAy;9*1we$+KGT-uLusRJNnDMka+L6{lQvT& z88hxB4EZHdjsvQ^Os5o5d7OvcySRoJV%K7yKA;*&P6Ud+{pb+O72t5y`K3;aKU8A3 z6GXKQW)Y2^g!~u)@!@`OTDJm8`Z_W+2)A*@=L27j8!^fC#H(`MGN1XvZr799W~|?; zJV9GbO))0_`kVq~ZP1TSJDy6~hP|A3UsVGwK2j%zL&LK=q^+hkKw%oV^uLK+W%AKb z6VZ`Al|(0ULc2tte7$!|q=~VC$u{iv2u)E{AuT%U5X6^w4CBDv=R#;E9dVLl$ay?Y zHX}*|W6rx`$XOR3&WVHhb=D@5*t>;3Zn%rL3fIGNGccl>IQUi_0{f(J{Ebkycz9V} zxVMx&1@vI(-yaNCFoG2R!dIXX+*i8O?+S;73=f5+caA zlAL=4`E0WGwaOY&7>fY3ET@4jaTWAMySj`nXOCdp@P8v_v$* z2J?J3Oq4m};bzaCgVjy;Ela^_?jCd_UNF#dyTGn}#bfl!@LTOXC4gal`{`jTR0d+& zoTRON*z$(EuK0NYl6@cX(yMAUh2wD5Z!0&q>C)x2-VvX1z&;!@2L zP4!a%DA}P$ja(^uqUJDS#R|plGVH3HP|1B~e!~nd3)-DXsT&{VO$#Tpmz!s2uZRO) z>VS5>s~4*h}!{F(CqGp~Qf`c;NfGB?c(yieN3HGAA?B7VNL6{aTHP5yo)`DGaj zA0xyp-?aaAD8)X(dXYJ5_(wfOkTU)0EpEj)BF$cKYJ8R;dP*213oU-cP{zBTzv$J# z_UI~hpHpl93h3-smj_-AI!i&4$A&3VW+<1msPX1CXtYP2CCX&Hn&RWN!ih diff --git a/app/src/main/assets/shared_images/lock_light.png b/app/src/main/assets/shared_images/lock_light.png deleted file mode 100644 index dba1a27b0ae91b66e778255e44f6a54bdd8628c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1646 zcmaKtYgCd47{}lD1yjLW0%?euOfu9mE6c!J-X?}Oyg-EtUNA!lFVik&(9F`bnwnZ^ zy0n#%A+;roR2p>4FjGNK#4UmM1e`_2?Lu7LU-l>fOFF40_}_M>@|oh zbAuVVG5a{V`Rwd8AU{8UeFmSKlfo9Ht>2fOeqqWR3jjv1DM8y~_t(9x-+h7}hd$nw zIUv1DO*MZ~%L$@-`s6wWm<0y6{?U4=*93u|)bn?F_{7cN(@bdZIo6DhRCj{!?y8al z8KHghcv9lP`rnnGBB{y+UPI0d=}<$5+8D_mm-YY7UE&xNjG1!7=lqI^CJV8X%lJlo z=sPe$QKX)ZfVx1r$X>BR6IEneE-VAbAy-kW;=|F~nEf`jgZi}1MMQr;-KL*iJL=zp ziQErctS=)Or?~xraSNej@U9W{Mhmsr`K0jc-p>Ny9lhgz8FHg3Bk(ZBZ$J&!oU9qJ zJ$pd}YU4hgSu}Z%sCi=BouF8*r5h0O0KHE7&V6?E{3W_N0?J2L4=X(9yR5oy4i80R zXT0{%B3U*%&kaqN8hEmcoe7F}>W6D!gCbvMBpb6#I4tTeEi7AJK>g75AY75G*?W4P z3G=orhW9vY04a+W%= z$>(=S?{$kkRaJzPwOg9y%{|W&iB?bfnZDbJ<1ZUV`xFGv9<^xxCtdlzymD!pGHe0G z9E*{-A(5(fd_Y0@gz-X!oER^h%U{7O!LVW`dzK{JtY%vh5LaX$h{p{?zm{x;DYOpvOEa^THJ7;V#g@zGE zqt*apwLn!06m`nff7`#nalEhQ<;D?f$*PcPeEqA*E0+7cVxtI?f8OQ0G~GLBz4e+G zP-lUOz2*%sD0aO%?R94b*}MSZ%^=B5b6{=X%u)EIyvC3CXQ?uq_DoV9?E>e^T|aU+ zcgUWQq?JRlb}Al!D3nA=v26Hm*aCjMg5U>Ba%!4j1o2gG>8p=Ews5q8%}ZN;`_`*y zSf*v}xkp>4pkCJp4wMh$T)k*eEn$?t37-U~L9+N>2`4Dqg#Zkr9lhycUT3ZSD{nV& z5%_ICJo5jq1^>0}-+tU&9OD$8>kxOW^~D)F*MPd zuUNZ$*kkv1X&+v3;EUI8Y41ca>itKQJf3K-@d1a)oU#OsvJ)TLvdf+id3ZMW@CgZm-B9P@|X)yQmMMh)SVXte3Wid z?!ap5jRR&;c}ewIiUr}P3P(CfRg}LvruASY`yaV~MhpNSvziXZt$d+BOW1~FVReas zpR4YLT$VNJ1_-YRYg`wWF3Z^LrqwNG#+E~SOMNVQU=B`J?dHbD+KiFygOS-UC0}RB z;!_U2e(~nfW@jBq6R5G*b4%sH-b)mmLZW>$8`o0_9h(igp zslYED;M#lt3q-KaMlW9ZOG&;1+qmnY$Q)<=8~5Ay8THh0uv?t-#8O6E0ls2$yZ zF!=#=%F6Ft_$_7YNLsg<##QV519671p@VuUW&+fpH0XDgb?56LHHh4i-VT>;@x6n7 x>hiuZlc-)>r&t$l2Na&hon+e<|08$mE&I89C=t73TMWMepae$*-3VYE{R?ow&fx$6 diff --git a/app/src/main/assets/shared_images/map.svg b/app/src/main/assets/shared_images/map.svg new file mode 100644 index 00000000..573dad72 --- /dev/null +++ b/app/src/main/assets/shared_images/map.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/map_blue_dark.png b/app/src/main/assets/shared_images/map_blue_dark.png deleted file mode 100644 index dafbcc4b6b0889f8758ceae32c65dfcaa1633d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2186 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 diff --git a/app/src/main/assets/shared_images/map_dark.png b/app/src/main/assets/shared_images/map_dark.png deleted file mode 100644 index 5ac1d07dcfb0ac9e42b3f02d342e660225e07292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1617 zcmd5+X;V`N6n$wRAZsH^8f2;9h+0-fHp3z$vSTDbWe*}C&_WB$`v-bw&N*}MIrrP0n~V2!QdZDV002PQ z#Tn}*Rr*)RBcwcN8#*Et8M1?mx4g7c<*zfP{UMUG9~l7jL%ss0mHjkYIz%Vpt|k)V zA`&T~3E=>RLNSVpjUk7HlERJR5+W;?F&Y3MJMMzL=$%rv^mZ&i=ua(hRb>29@>-)Z z4{3^HPT?tIO+G`>xR)}G)={hB&QX;fciIBwb>GVG$>kYC&#n-XoE<_8O8VuWN2B~r zXCQ|>B3?1tqu~65`2L`(3*siS$FhxpCGcdwkF4ww+)Njwibi{Kz+1&$uBSQwB6M}E zugELJYqOEkASih^ZPs{fa&`(el_k_(Z+W#NETA%|0!XIix=Y$6uE$$El^2AcZVH&< z3hx|^co#%1ByeIi`g%jYi+|~4)nwbajGr!Hg#~8yhQL% zmr66wOE5Lz%D2d)7FpNt$5!>YiF(z9zuh*LoDww`HqTC~x$%{&gX{La(_)GkuA+=< z!k!KCOQ)LwL3keL68}*u14LlzofrmUre)V0a>yR5|?m=mfpBEH!g!toT!b1PeJ8^HKqc<+_s+Qp8- zTi_;L%ifr;nf>n1e`*1~gc%Z@;J8QLyl6`>1%=q$LJzpRZOO zTi3(5UkhrbqR!Gw^@$Y{AL0elIZ`@m__HJ8#T8%>!T&6X%CzkL^pSEJUhV*lAlN7R zJ;}V4AV?h5dcIMKm9j<<46}71E~8- zL`*x3#<;~y>CcCkvh3jHbLm86iluIFh4_1pfDb%f#fU#m zglyf!_EB0;#a~xggP9?5U%4fsGAGL@U9g157tbyTyeJg2jOOvRVPLaqmmv&ze}4N{^#}rl8aA1)4>f5 zn9KQlz;^F0WF8pkZWPRnSVPuCm2L&g&U)^8=%JL-1c)hN} zNj4-s6V=o#l?X%PR*juHGA@}5wjfAAicGhKZt%}ElO#Qo4e5st&eH0GpQH(GWSl#> z(@z0%gv!iB8{_Ohj0wgy+iLOWNc(25%U^sMY*%DYAza24E`eJuPN&tfILp4ODxTnyF#FZcy_4&G r1HCl1q=;JP{~?$7-}hPks(u%>XjtW9Zk(7begA+9&J)|_K+OCbtcL+z diff --git a/app/src/main/assets/shared_images/map_light.png b/app/src/main/assets/shared_images/map_light.png deleted file mode 100644 index 0f251607cec0062872208bb2eaa12c3d232f7106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK^Foo&U13vh8oimO_TawYG2uDK z%rZAEYqnc+)X?Tb&UyD!Q>Psl%6xB^{>1gYiQGdLv&Hu17kML^YImf4vCE&XwZS(( z$=c7ey40N8{?d;A$2VFcC4axT)_tQv@$Oe!U7bsB7L`kt8+4Rb*mqccarsEq ztWEbOq+hh|eQnWVTCwhF-2e6R(S>PETm5e`oSDjZ)VV_EKTy~HM+#xvuUkd5GQRY< z67tsey=msf{>KYHb=zLs(XuzlYSxs$V=_}@y72UMy7%^`{RiBI zE9%#GGWa~&+x=nX7v(d*&rX>f%d%kM+dbXAKVpi@8H+m@wrn^Xdg@$As(yW&kIj2) ze~wWt-|M^m;+0y5u81(Mh+$b!B-n7ul|f5Ya8>#^3$-t_g$iWbF} zjs2GMMdEh7f8^zVz~k|{FE#s1Z`B7?yo~GCwq;BPrD8Wm!|&xkWd>f0?)4vZ|GoIMcj@nb29pto7E<`iPfuA?>E-&4;#-{&nMA(XBO3ysYALe-pZ*cCv wyCUOYQs(=84c#}IpQ>_mp_M-%ZpABm72SiM4>. + + This file is part of Privacy Browser . + + It is a modified version of `more`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/more_blue_dark.png b/app/src/main/assets/shared_images/more_blue_dark.png deleted file mode 100644 index 481478d6174eb96da191a72943cdf185d748e570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmZ8jc{J307yr#z$MTRZyD^2BhGdjSWX5tHJ6Weu4Poqt8GDu?%_|g@2-(+%?8`98 z5>a6iB1y;|9wSSL@r?Js_r2%b`#JaCbHDeVd+xdSd*9mfFMb|L9smINO^gj~SV%r$ zZcdi$zUtD?0(O$Vi5)kKBDviXSUM!Y_&NyylyD~ulA+MNSw@K!_`zfVDpY{w!jK7pB zOMvOyE9>Vc5+U}9GX;>0EM$0*h|1%0$eofvbfTc|SZj;%w$QLcl=nyrViX;hNX$r8 zxrX9V))%>49~v@;^pa#xT;CaxmW}MP2>qTpLBNOhE&XzPvo$E;LC@6~CxGPR1@*cA zSM>0Iy2A!Qv(=*FMAqGA9LVErn424Z-b7JBy2i*k^^P9OQDmLk6|7$uO%a6;&@uAW z;h5Qt@bA0m3<`T+D?F|Hdxo}^6myNr{#FL5*Keo<+`!fNVJN2Nja8rXB7&K6KOO_E z1`8Hz3^|~UD!ZA{3OCYd;OHd@~fwzC?ZpDJQvE8DBift!$ExisEK@OLE0l< zw<7Ge7vDkTSxBnX`3*N`Cy~1N(4McN2kM;%1_VVJk3~MRrc0ktyS;u5&}Y@eVI(#%97sGY#vfUCDo_AqZ1+v&XUuZiv_PZj8_P% zU*M?9dbuY#(>jfcsA}tPprMT5YTI}-Ctl;l4^32+CBAu3N@-ygxKZV|`dd0d8zKXL zCw+d317#W`T+w>+hQB5iP(B*0Diwp4bnJ8ZgKQ4wK&V}Uu8oF9>c=Q^QY$E7jFf2IKqC3zh}yS)j^h>4TP z$;YCsY;89+Ko_~pa8HNj2-OIb>G97QEU0)}O~79GMA@unZ<%HE>?AUZB7Boi_h|7K zz6u!a_3FlG`iWNpJEzF){6o`73K56~^@L)@>MP4ssS+VD$dHnR7I>z<7n6b3;^U$= zi}%t#*=9_h=e>R*l2BXB+@DB z(6zAWP5Z-Jf{1;{hO|mM&OUh>6lt4^@fX9QF2+>npafQLv|eo+U!`-A>zMTEi?i)O zEVBr^{D;*QIUpe{(tyU*NdWg8xCho3edwoi0VLd_kc2m!e9W1!;4Kfr@<$h+!mYr1 zS2q9No{R1ieQBe|xhWCT6|n7V(=Cc!G!5y}g5`=<7;=O3u;R3uuw zUO{Ux&W^2Zn5lt}Epn#SN3|bDRKNUNm8HzonNyrj;0vk ze#vm59J|^w$tmHooh>B|)_g(e{|NQI8kztv#&~{p=)COy?Oas%M){i50s-`S*++1e z`E~ZbD$bQMQJWvl9n)uPiq?&1TU!-BPx3tE1aq}^F0{*U>6!Bd-EdyKsqI+J8!P*s zKP&r{YMu;|(7nbl)!|ULo?N_DO3k#$RK9|hg)uz9Jv7A2!XS}>+^d5tZLJh(SN1Fq zry8P0d5{o_N{43IaeuztEFbK<3$qgK_8o}&nF8&MA|DrB!_z8TI_9kW&59qUjVt=< zV7EAsuTA>%rxtQYji^T2TW?a}MjwF2f>MlqH?CwBcLcl2R<6{w{c}D|ofCj#pYK?Y ziNR=6(f#dL@H0kWy=-!X`@-m?up@TtmWRad1L#-uz%L*yFV}jTpr`|SZG5|TZ|M$R zwOzOMJ8hnC3z1lx6I;dYuErnoU~?`I?ei$&{% zTb|hFSN%uV{9KXW@36t3(<$-SIoBzTai1AEz%b8ug&~6i7Mx+&b~O(Y9R%58h4Ya^ z`{|8wi;g3AK*Ky)xIs0FG2GK%QwimjzlBiTi}rRzaw2LdqQ6JVibau1ejA*oa8JuG zLMSYnG<*;eP^TA_NcQ;ej{Utlo8C>V$-nPu#VTb`Aq@g!g`^DOxift@gk7p|%crp5 zfhKUP0-K@7`>&5XPR=lq- z;>pJ*a(GBmgH&fn;X}BXyhzz~8Q{kS$J$mk(z|Q)(?AP7Q9(cWUP7}4YY2fK$m@+0 z8R0qN)VtO%{yKCYU>_+Hi#csGh3A!<%wxi(SMh>!T%M)3ChN>GP;H06(bCPMzxC9Z zM#UZ=|4Sn8uP4yQIP*4(g(#_bXWA|1Ui2;A1$MTuHXw V7%zX7HP&whFfp<;tk!pq`xiZiF4h15 diff --git a/app/src/main/assets/shared_images/more_blue_light.png b/app/src/main/assets/shared_images/more_blue_light.png deleted file mode 100644 index bd606f9a19c8dafdea414b11b3d055e8b67d3993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2320 zcmZ8jc{tQv8~*(U4I>%*?whD)EU$PYk|m5i*@v=Z9Vuhq*CEL=q2l93$R61WW#7rJ zA^RFxlVqD=@Qv@k?>pD^Jok0(`&{?){Bf@HoEU?9noKZW7ytlF+FEEMD&o(B{sJ|( zE7|r@f!0e^+k~FFg6SQise1-@t@~a8fP8o!pg>gJV=Bqxt#0mZ?1uIBv-NZY{QUeR zoL!%I+1t81O1ODCrTSxxQ>e{PQHE@&ag(MxTKB2<;=48 zjjML|Mm+^T-T_;5F>l|l65nQJzB#%xz}ljf`tWMbEZ|!FjUOw}<=ojI5i%T{yQeRs zjjz@As--((#E(7b$Qt1O%wI_o%fIql5qvNm8v5}ussUUW3GL>5&0WaTpm5vnRG%zh zA;X^a)RHnKG^3h5+L53Xi!^4IA~`DC$Hu~nzvv2us^5@5;=;#45h2aiD9i@U`~%?r zGb@0T#GyYyT-1ehu!U@b)~lN0i?s7AWZrC_7qtc)>)d#uj= zbXx1oHN|51q*I#`Q7~^0nzhMEHRZQ7qna)*oKw%AFP&4C{QsrCqd)?>n9t})t<#q= zde&_&n!k}Q;NW@e2`tf!%6`E>xMNIYQ=5P6J4BvgT|lFwcH9b#YA{-$2MB*X#8G`Q zmDIXf0;1=RA5|x56N$<}mMMTnTSE+eb8)AGi@Xln!hGk=Uo&=9?s2Wz_4NMigfM4< zJvhWyg&iNqYi~un#8t7Tgl)RTwpswu0cVIR`&r-@ZcD>F&qLDm#fxG1+*?RQA?h0|^eraVi^A~YuWy;#s@cOxS$UU6sU2E3JSY8Oc?s@PizSP=h9R6PkrW& zRya^Y^9%w}&fQ(EleCSSjbjET7ja>BIo+0#y=bAA(4SVp0AjE!<%Av`=FJ-&qw%*G z3F#}L1Q3|gS2;$hH>|L-z)J>9N)F@PCnuNXP6m+!3ZH(c%x?zW`+K;tF3qGPwrzQs z^ss4_jbc=c%u_2)@y(ss()SU2T0)tn|BU~PUPs;1{qusUKHI~vXrp$I2G6mmR@M!H3hM*CoQ)Y0L<4y5&njzLS?Y0q`pxl<}>JTY7r;y6WO-0GF3rJ809cV$U*T za+B%%toM}9PlptYeCA&nxr8a)maE}Emr%MguC(s=#umjFO& zI==Jgsb3nw^qXa&(PV4sDiEwsJ!i~WT`!=kbBnCT-j{a!?s&TSjn`Y|c?(B=k57+= zT)~RbEt0+wkjOJvlZ6MZkl$i>m~*|#cNJgUKGbNT2tb94Uar^2F9DDA3Vwl$yERZr zOjVh7ZQa|ER51m}i(`39E1FT97-9yOmk>6;Ug3X4x&Zje^RyGXSFdF@3>an)HnPxB zSO>?9MU9pVZPVh%Y`kt~Hq8EDD(htvIY|_l35;jp^U1X25>mijImS#XHu?BGd|U$q*+M5MpiKmM4o}%gP+}d36s;>3*kif$AY5^>u?U1eK(mc6uFw^}w4k@}?dfy@oEd?lr_E zA%4+oEz3E}P^Cfj(UvM%^E{5od4jAE6{ZOch*HFi%dCA025w!mt*$FZkDNZ|GWZ(@ zRU#~+{iA^DHH%iB^1f9J4cZvZ%N-PpXX@bg1>a*H<0Q@g zdZMsmVeq^tCR`SjTlcfvk%G*96f$HhYPD{qK579UMtK1azfRUU+l9Zw$Mt@}Ez$>a zx-T6x7@H&^78rihrMLp&@A=x3#aY&(4Wte{9d zPI$-c|KTvhc((~FAu2r_C^;onIW!;aADk|~?0GTcvJHErisL)85o$k=6-EAk;8W*6 bY3c0i;ecsSVB{k8_X23E-$R$F+C=;Z^B_U8 diff --git a/app/src/main/assets/shared_images/more_dark.png b/app/src/main/assets/shared_images/more_dark.png deleted file mode 100644 index c1c54dac527cf5b0dc76fcce80b95ae418dec46f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1806 zcmY*ac|6Dg zklG1tN#9s%q^eqCtyC>VsqIbE5GLOIHRtm=_j~X8p3nDwKIeY!IoUtDVC3OQH~;|h zSVsqU38o&nG)%JoZWS;f0ceaJ7AGw+s&wF8$ytWt=p6$9I{pU^Lfz@OE(v}cd*O1d zM`UnpLO^s7kdTmo4kd@hTn(TEp(CTOm9AML0RWbZb+E-HmaR_v-bKx$`ZhlALnm@u z?R+cTBaCs^-D(ciXx>5)PQ8_N4$B*z8fn89-u%E)P9oTLx90ro8Lhib6#vVA+z&xz zJ4wXckc?)eTLpVm(@=ZwreV_n?bD<0U-69Uc6MyY@d*oNF$?|s*4GAkF-jGw@lq_eI@@pt${TvN0_0klro?ziWv239Xa{&agf$j5X) zxs>vH94OefC#h2sy(a5nt6)=1cZ{s{$3Vbw0%|Ew{VjLbWKBs>n`t{F0t#ZG>l&2U z$??_@)p}jcccrn1_H?N0PvVu=EkfGCjvY`=%}Xc3Yb${;E`o*iQM63oN%nV2ZJP`S zwLw-0yrvN`^FHW!s9t@0-sww?4I42476abm65n_~2#-`(5&SF^d>K(iqJVkt{a18e z{Y_*TNV3%vcGvOgwLshZjG3f7IiPs&{fl>Cq9}`%4X5Z?2{Q`gfP1X{^s<%a;Gi&2 z&=RB1EK%;_;NN6X5a1}1LW?tSPoy~8iiCW)VAz_}0!zKLzwSu}p~WA5tO9ekf3{(P zB*f8veJ(47SdEk1g1{mH8oHO2f(s^tXbKg=fAjZuFj}mG>>(#e`Dw9rWFny!Qqw9) zjw=0seC#dg_>v}3go)@mA{g#6b*cf-;xKL_M54NSE(CBqufbtuM3jsu2+X+I+~R>0 z9S|REaE

gL8~?Xbhkt&K(w7QBJG}^wuh-&3N#N5*1v5_I3C^SI%Br1yXivfghvsU32*J$f{wD=_78b-|WD zwohxJwrCrdS=(pAqO%KH+=ly98u87s^IztOQ9l^yZe;pIll)wGqKNA*C2@^Rv5fi7 z$%i<@l{?+H=-1sJ$IABfyBwQFAQ)9>WyDUJh0+nX*%^bE6Clgd`WHqBL;sVxR~p&j zI+;o;3Buj)_;B@gTwV~vQ8?L!=_cq0eeZ3er5O*Z!~5>pDCL+_MZ3nIyL^0FU0fJV zmCIME$4psMTbIA+{?-}nYyx@=i(m8!fS5Knf8vMDF@s0Ob$;z)=V~Jw)H#+1+8>Yu zl~hEJ3~kxz%0rsx4Tcs_OiNs6H=3g$$2qh3 zhtb4|rBAn2moe4Jx`|oLl3-KMC|%)#r1nL@UCNd^p`AaBHa?K;ut;#!W?by>@t8=< z+0WzuDthj}u86H-N82cPJgTXh^qis^>95FPEe>9_{B_lywaCOZs%K3`z?grP&pOx8 zac}nOtOnFlI=qVW#}|clPeG!#iV*sTn8qvpf0ag4&BJHz=bpMRQ1D%&yaq`@00aTw~j62&m=clAs6sx z+-v-@qxIC=-?@!nq{yG`yEJ z?EH&_ce~d3(L6^+YYGml-HdpT*Z`5GGQ3vWfwuJb0~_}Z$x;yfPJel$3b8OiBH?{h zKKE``l%5*1%wJ;(f5v9~s6w2cT4k;4H^ppH(qNoV6J01uY)c3ATUnw9m(vTb|{;I*fm3JC`6O-j3IM z(|w;!BB*;mn9J)WaKT-AA6Y9t>Ht7XhVQceZfd3ML1iRDQGg#(ZNoSuNn~;it_syD zL`g&Z=qz}9cWhcje2&*VLEuat+f?M^K154=1)LSoLez7=f#(Ih&bz zEY_5e=M%=SoT7l6Is;_%pxl>QfFiDkY3 diff --git a/app/src/main/assets/shared_images/more_light.png b/app/src/main/assets/shared_images/more_light.png deleted file mode 100644 index c5c2632ddddead559751a8d0a8a71a44d88fdb15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1625 zcmV-f2B!ImP)%@o!!*E*!wbG{tJPh*pgQ+DaE%MMbxc z9Zc6+tQ2+OTE(S>A}UpvLLBP=3R-Lt1lQ7}ig7?_YjJ3yS_^I3CN9pswQ2L-yJx(^ z`+eZhK=bbZzH?9h|2v)wA|fIpA|fIpA|fIpA|fKvG<{{SK;|}JJ#ag41#m&BYg2zS zz#qUbz!$)_?B~k41lSJDsYPwafj5DXVw)w6yD_7*?9S<>whvfQWaGqk3-B-HcStX` zBa}P{Mu5GP-x0ms_5q6k`a5r{DBc2AmJnC|cVX5(OMMhD4ooDDDGNIREK8XIhJjCk z^Ag6C_FBOHlmlP_Se`JRbazfGQK0p}1BqfuaZ6L|11tu1149X7iJh4g8Q?Xv@vCYe z_5c_M9*P`8Jj5&k!@zghzfw^#Gr;R;<5ym+0ie`h6ERAFQh$xa$N*c>#;=Xg17I9@ zIPfwhqL3wE7<0mBQNU$NWFa%aR*&zvvxi3G%yt~&MfdDuo@Tz&c!_Gyb9P1910lg5bzRap2U$X z)+n$hTZg%TvAX(z@+UD`s2v41(79~2fQ{Mj`o#JXGm}{-L%=%$zSjgW*d^8q;HLnw z7HadXi4-Kn#=o;mC!Ovt;Fx2qU3A|dxjtZv$M@Py@ze2xnCusA01N|vMhFn1Z7A4D zr`zZd=O5s5%Q*eOPKQ|AvA-C%6gcbwOtM!1!lucS;l(KAr8Qez)6cZ zCo%giE?%&RQ+NPWHTBN{n;bg|%#LBvIJ3Z|9hFmw1+`Dxxgi9YKSr^>N9N;OSfS!`~2@qJ3F zsEJ9ISQJ6tzR+v^(@0w z`(;j3m@|B5UJibSuzw-5z(<&~q@%z9=2Gn)n2R`n2aI(nTjr`P#y}QxE$}e`&-|U) z+NGcSflu1}pEO9jbUKYWEE-F=E>ePSH-+w|VlNw%usR)v9Kh{5ywpgy6D%qP4OjHh zFqMLaDsm=DrJ%uzo?}-jXeiqWB2)?*#^z##Nc*8pP$E zK$U_9aeaBTNUP$eKYjd^ZOrJyEaygpu~phjZM51>*|BcV$` zPNkqGVw8Yf{xIX>h%v-d%qe1Yt)K>Cm4KW|LB+)^0Xf}4R9!PEW(hlhjtZ)3f9w*F zn+BHQJ}-{M@okC{kke5?^*oz$002CQnRP?TcLKP&jKFVG{xmacW{Tia3=;3{7iz`Y z9!j1c`YOx}rDb. + + This file is part of Privacy Browser . + + It is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set and are released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/move_to_folder_dark.png b/app/src/main/assets/shared_images/move_to_folder_dark.png deleted file mode 100644 index 343fc0b2d518031d46f1b4dddc9077b568a94bdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1386 zcmZuxeKgYx82OWQ3=G#}mM(u`3eWhR$hWbUv3d(L^E=lwd*Kkqs3l|X-QZ7sAG007!P1bi^0 z>~DeG2=Oyq)JsURIuEKf8HDg80I-hy7NF_nwjZFTQL#jFGBYai zEWl(kF|i48NoS%MXEEm!W6Bh+Xvk>F2Y-~D#+jA%#GMS?-Z?+_x`v+s4fIE9qh9eFyyVHy5@r$29%GJ|I0)FylOTaBtbL zpkyi##~hnfbdI#Y>%ms6F58w00@_w{MnZQ`ajFHfC9@(?<(5Qodc{&q)pk9N1DHZX zXQKKOt3yglbyZoG(!FyIY~t7c2Qz2BA#po)X8T!r|dj+c@(nC>}Kr@SB*?bt_q^gE%tOF5r;XRQi zv!d1^47BOw2!#5kRYdngsI)%W`Rk~waO#O#lF^lmqE9!$8DR29t3=))Bu`~?en-MU zLXx8j4nzIvwn){W@>H2?B2}yPmK%@b8yrQ025cwEXA7l?k~I3!Qed^{p2F_22O3I- zg#ay8(;1)caRUzy4Yf_EinhZvx;Ah0j(E<_7Cr;i-nu$Q@kQ#h>$l18 z4NRyOJ@#v}oNk9-XT$oNjh!bIx?YIVaD+2~=#mNJ%_LA?$;__loLiW5&lfE|$3PBF zZMg@upjl(1Cd93cNQj#=kUR2p&JmG(q{;8odes}MO1S-cHo(V~odk6YDYDR$3v~Da zM5`QkFwbreJOX|^L^3IVAZkpJZBI-mO~q#YT!V6GA}VksmCjh#PY?CCYP#E-iX`gl zcdqdzlPkzJ{?#z6vNGdj3i~ocwI<4i z(mD{$rF`{r_-cpKFmK|B5vO2}x=*oQ@U{*~K|65)Z7HcJQ-SkgS~CLbuv+M4e{*Fl zX{u|MC}$L9wo}wG(HIgrmPB8Tvjr}Q_09OmYcq!Hs%g<~1G53pqBkgP z{wPRD(J98%{l^8WY+4{jC6>da>WBzNOb9Cws8>0j zAwxQd7EENr`u~7Erqb?KZb+|~x%VJPjA-99E!Aep6#|Rw(tm$D9SWU}#x4lmvs+vQW90KL5+a>Iv*BtQdwN8|`ae0n;8)3VGee zCbT7cC6a-fCLbvvr*2N$nl>QWv(CS0U!iPW)oC*wkENQ~t1tUKOPNmi!U6A8x+U9M cd`q@UH||9 diff --git a/app/src/main/assets/shared_images/move_to_folder_light.png b/app/src/main/assets/shared_images/move_to_folder_light.png deleted file mode 100644 index ab353f9d1582cdd72b62339f0e37e3a7014833d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1261 zcmVd3qu{|q4jvYdLT-8!-`1E*yl5hbihA&5+$Fw5A@QUhD$VX}c4n$-d#1Xp zpAXbwp{uuMe&4CC>7JeeNs=T-afIlf;U_(&Aopf``pVZ!%$ulufA5p%b z&IE-#MfpM+f`U#_zKDBm9u6{HPk$DE&IB`XFXap8Oi<9HlrNegXj#gs;8oy*Sq(%{ zHh>Gj8Q^{3G$F`yu}b+@tZlS?0X#CPXw&RV*tV?;M{3W*z~{hgxjRS+fVycvVJ&ka zr?Ua5#|hxs)J`4(>ahTv1P-QjN(sQ+R-4Lp7Gr)Lj!1KVr zSO4B5d?2PTA&6oCcDJ+mjp{;R0IoHz_>HPU;2L1mwBk3a34t@fme}GqstADr2(AEc z5?}nrCU6Y+w)GLsi2(=}fpy@%jJ_Mdlk{{ZFaTR_2RcjH2n;~FszTr*Fi$mygXCC=Mz$X+gKDY+R^%bG`Ij6OYPy5>$fOORqA6x{cYKs4RM&HgAADjVFoTIYh zg8_(jj_~fKs^WtIh*53v!2nEio(iY^?OX(ocb@Rd|1G0$FNzP&0OJgz_+S8bGnnFo z0odtl22^}70NV|&_+S7USAb`Liy3{F2|wJ_yW)fI0ve0JJHUa&ex13hm&+Mo%PR05 z@geB#w7;DJ7!@0WDvA#VU^ml3P)+f{HNZHlgx}`f8G@>c56%FS9A`8H)fFEMz%)$= z9-_kHL)wQzhw3=tieQy5mXrte_smAoeSItbrPvKq9@sA#15p{#wMtppA0(VAT}&R1 z=IJtUGvW01R4FsSW$L-9qh=oxS$s%8wyh;@ulbvKjZPEp6SQ@&t&cBTd+s89n?>md zYa4AB$@^;iERPZ1YLtG^w$LtJt;t+H0Q|7Wf!p@pz6b7~QmdJ{5qO30>)NHCh@rI$ zz{@23QuuD#y27^)SRqV9hw1SrWIAqxaFXW?aF+BRx|AeIk|arzBuSDaNs=T. + + This file is part of Privacy Browser . + + It is a modified version of `new_releases`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/new_releases_dark.png b/app/src/main/assets/shared_images/new_releases_dark.png deleted file mode 100644 index b918a6318d63ad1e2e22ba5a739802ed5b19eed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2322 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. + + This file is part of Privacy Browser . + + It is derived from elements of `compare`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/night_mode_dark.png b/app/src/main/assets/shared_images/night_mode_dark.png deleted file mode 100644 index 493e78635dcf00da40d8b7752b53d4576a2b46d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1383 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKAc)B=- zRLpsM*FGaQRpR)^_sPx9?1~DeT6|d>A1qm**JQzQZDG&`&OE+@u8v1z1rBaqvA`oB zMzuFU8cPH*}K<^@B7j-Q}%tSp{UN4I0xow+4>8Xz0T5icooEOQnTTSh(i&V zf+g#OIZPgYj4I0+CcSfu}EEndE3 zS88+J%e?2*58avj-91OCn`5>8}Awh`zvv$r<#a2 z?7q)X!*VC0S~u{_8>J5x1slIbm1S!&l;3CH!+$5XTKD3aH`QwIS#EE=z9~4Eks)8; zL*t3HMw^2VaBsc7G1!=K$8Rm=dmpD~y-m5`!f;u(-Z*{=qe-#R3b_L|Z-01iEiqal zb-?BwkX2-~LhOLedmyX8XvI%HgX=)YZ}n#jWje9xv3}_16oU!|&hkG?SIyyJ<5hUv zw?Aa<^I1G&VOdE}so|M? z?Y!i<`@ab?{t+{9PWzk>(wmB`hw#)^Y)Xwom-2J90Sw6}&zREEE|$UHx3vIVCg!0J_v*rT_o{ diff --git a/app/src/main/assets/shared_images/night_mode_light.png b/app/src/main/assets/shared_images/night_mode_light.png deleted file mode 100644 index 5e6cf45409029876e838a2ed33350d2eebd3de38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKb*8A(o`+VxU;JP=iD4&@Sz$GhEVzU(d`fKUaNj&wqKI+dApz=GN}0KKG`A zRS*a`(;L6Da242m{JoBm{nwn1cEk6aA_-MVx4wCQrQ<01v=-)_BSwaflkbw`)Ijy>(e?uM=G zAHEs#$}k>_-lHe}I`h=meF@Io56%|K-?;E-Ywd)mQVGljtP!ae%l_Q=dLZ?^d{%S5yFXZSxYGBk+ySdu_kWAcue@{3JAr-bd!8)5 z1?NTUSG_7{+sZZ}`RM#rujV?gWqcC#arvsU^nhfBo#B60uDT<6MXcd^mwjldb@MEy z4>3T=yz~HX2Gun`fkm-%F_a^_CaEV!?^yvIo;avA6 zr^p;|d(iM*h35~;obU6F)OhhGFj=tHJh2sIHa<}HVA^+=drOZn*s=LBd+$|GdZGE@ z>znI~ridL-dLZ#(=XaN?59VjB5B7X_d8Vb?5O45MvEojbj_9$3GM`?y>y zD?PxAL0a?0qLhF$=N7auv~79hAA0880qX|Ebw7edHyVH7NjL#?+dFIK^9*hK9{E4r zW&D9l;Z&FX)Z6C{C^uvP<@BtZ?=ZRmy;pQo@(E7@=h@FifxZ{5!EVBtXtqgm{+>>D^9#5WtJn9N. + + This file is part of Privacy Browser . + + It is a modified version of `visibility_off`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/open_in_browser_blue_dark.png b/app/src/main/assets/shared_images/open_in_browser_blue_dark.png deleted file mode 100644 index 46ea5ef193d024bb4c2469580c031b266080a37e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb2>Idb&7< zRLpsM*FQrhRpR)^`^Ga@j_?Gmfl|Ynqf=k94#1@6|XGd`str zVgi3=RKN;z|E4%0{-a60E3PE7Onl`b%6Ty%``Xr}UcSP!-|ky4zI;K%oHM`A^%$Rj zUwr@h+&7<7r|InGba24}TGcc89y+9?o0hTdwj!z;{rWrwwUtX zd;ZDTuw?V*T(-&cxBZrQrrL1oZ*@HDhb{e)BBv)?Uw>D7^ti(F=?(KX9(|`9eSJTB zL4W(}g+JDrT-^El)t7tsW7{n5Gg`fmvS-n==eM@HP;;-eqnJVITjX`gDN}0Cl{OVK zhy|6-b?kgwEc>92o#9tZdO*_Ob<8z?#5SBg%;RHMNcN+MafCFg}lTuYKT;2@TsD%QXu7SzvE#b%!2kLd~7wIvHG9HPka|vZx%AYX#bpMLZ1y>kV zfC8>8OL-3z{+xKpJ>V3BjjnyrD-JL5hUZV+y`&viGI?bFoEYR5FpD85u5L+*;1s2X zo@w%$p)9TZ3Xg$GgdG<$p8zRw3An*f1XS`tP{gRgOV=iWsbU`cw;M(MP-se(UM zPCo8E+Q6{Ujv=eD)uF)hq$Oj)j`W<5v$L0fi}C;TV~wa3I`)6#b}{9tix++^xOe}`^3{*3pQSDN zXnb>rFzdPbHs1=_BR(25PulR~WNAw^gHpWp`2{X41$FP{GH*Cm^TMiGXw$bXuQ{GG znEl)F+e9He_W6Znrn6$-rpL5fuot|&GVk?Q+|rr3$LQySRj)<#_p@D_zQ0=f zK&1R;jcGf7@!#L~IC;YS?~G~g(XxzjECmNo+w3y#KA*oXzm{?HVqN*id-e)`c^vXJ zJo(LHrGSr1PsK#+xn7q2wQ&A@n{U6~J~(#rpfrP1tF#RBhYja{Msa?K)ZVb( zbQ#M5=qxQa+A#gmIp4>9 y>AGet-_n&Mnr8IB4t74h@4SK%CRil&Q+Vd3d|NqzbM3%VjKR~@&t;ucLK6Ub2uU0O diff --git a/app/src/main/assets/shared_images/open_in_browser_blue_light.png b/app/src/main/assets/shared_images/open_in_browser_blue_light.png deleted file mode 100644 index aaf3edf9f649f13a47afa782c758374353c8049c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1289 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb2>+JY5_^ zD(1Ys>z^T0Dsk-N^SNrv%ucqrd9m7VmHV<_#n%MBEJ0thE~VBZ-R%5(UmT1U%v7Bm z@!`eM+3Jq^o$Z${rI}B?6wNYGj>XosCCqTkm6XX&v+O@tZBYK_xO?V(YwL4+&OhJx zK7Z5u>336ZW-=;a0jq2@iz;lU*|50qirOw&#jfm;Kk@lhSFXE46H`NV-gYi}_Ug}X zZ`Zk@9t?%bm71YH9U9cTXS}~)&SZNvPu2JJ!DWmx7PEMAzPQe3syb7ocUSS#(S2X; znNJt@yJIAsX`1okDgXD^-=3+m%59(J`G3iQsq=3C`g7`O%F(2_6hju_&DEFQo;|tdL&ewMgZ#>&mTGbe6Zzt|^_St935kHc2ZtKH0tPi{_)_m7NW`*8eIqlCl$ zj+hTpjk_8CZTr)6ns8-N1m06?m=gd>?0Vf&S+|v6TzS^9Mty>oFa_;Ek zlb2KDJ>;fxCuEd7^U$giJn(PR`ltR$zDq-oa%hPj_+RpKrkC4=v-R={Cq7gN<-dIq z%~Uh<`NvKR#J*{(N%TyyNB3sZ2XQx5%CU{iE^NmzIol z#uX11Z+&(p=HBL2OM>zlQ~F^MfE19(@q$A*vPQE+R`!qmH!dHZKHt>`E9*C2n9=va}t%CK(%>=fmpMzg8bTjNTo#AN7Ve(@qKc9m_x^sGfpHjM$I}7^- z;ic&ecR1!c@7{K2`@-i=?JVpC#dew81y&_|Z~L4ky`Db#>jg`-dbVwk-R;^=v35sZ z;mlljoWDNF@Z_`NhMgzpuGs#amv!BYGmHO!D$Sp=uW#o`+3v(Nd6u>F>fc|lyZgO| zK`(EWPV1}m?2iwMrO$)R?zv&iiSPv|H!J#CzyP_Uk?Q z_MxnJ73%`iFHS`n%hj_wmbHgINm#ODdBy7g?{wYsXlavg;GacZ rOXqn!505(8e=S`=5EBIU{$bm^%gTe~DWM4fqEADb diff --git a/app/src/main/assets/shared_images/open_in_browser_dark.png b/app/src/main/assets/shared_images/open_in_browser_dark.png deleted file mode 100644 index a52d292c353f3c802e1c6144744c19382d351aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~tw>@1P zLn`LHy?bzVNUFr~kMD!8x$RUCWZN0Ez3bYt-75|V=xDfHFk{udbLG(f1FjQ(o4t)< z-MVw9fa~t0Ev7396nE?vTrp8XWf@1OjqbZWN{2QW<@MY@SSm6*escb0 znPaf|>WhO58F%~^d%*pm;7Ls76Oj*%Gw*gwNr*M<&S%}n{LSs`l=>3M8~JJ5mD_AZ z4UgQN&$iF$bbL$gfv(;8T@qqK3TG-aZE2cLZ1#&4^vQC)852QV)xyEsc^}~@*-CG2ga6O2h7QduN!Iwc=XTOKIV;6&!-hK~J z$IpyscK%WFW$|UdQ2f)ii(?k=f})?Up9M`M9WH$8UZ$L(*YMz}_*u6LAq>pA`!kH1 z(wHPFe!3P5ng||fnig*&dhiKz#D`DaX-YFn7?go3l$uVm8GQQGebU|FB*UG*sSjix z>+Qe6GpF=>_%XYQc531Wa(;?8u1%hQI(b?HcW_Ta5aS>J>G3{BO|EtJ4pVPlzf{jr zbG!IR*|qh%-#-$1eLwxeal`WcS!v}}_v#j^2_JaFXM64Yw|8|d?-*;c(&E3{UYp|c zO4H#HBuKFZ6)>c63h(UTZ@tI5t>ni}Wx@YXUU;UZT{M1fc;vlF`zwDrcN?ZZQoz{V z83>A9ZARlI^I!e8Q)(~m^nVH$|=0v!9>1V`sK`_g3dc zacp&LbNFYeN=LKW^-G8dHO#bSxyP*MerEFjFU%j_y|G&__RVd=%)g9#xR&f#QKS;j zwB9|gQs$T6f|+-XH!nWm_~7`7n$IjGAK9Eqt0xos!XEc3QD7V8}uMt=lFnGH9 KxvX4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~tEuJop zAr*7p-rd_Rnl94t@wmk0jAElK$u(cZdZcHQHKNkEglz=zOgcU&ao~|OM7m6o}W$n`<~5!KR#xCl&WA_!x(=3|D36Z59l9|?w|13?5zC~-hAl~%$MUg zMD=qYxOVNf#Lcn?e3#>w-0F{S^pAR%Vlun&v`>BECYkGv{L#5-D)){4x}GeXlecx| z_l^p&4J>z<%UI3?Rr@#E9{6nMY{y|Saecwh;2WGWZ>?378k8B0ubiD;%kIMRq4EGv z>F3D%jDq&eHp?sjt^c@}!S0>0f>MJyP)+Q5S+^SQ3q6t!MQju1Fsh_8oJ3;wRt6t@ zf8bR|zj?a$fp;tY7p>i9ZZK#5E0**ZHgDHw>(_C6oMV_|-0*})!IBx7saMUQ{n|Zh zCUeBX%FnIR2mW=QPc@2U);Jx%sB-V$)Jbj=3>(U)$1mwsh-Ub|?T=C_%S@&p`=5%x zR5~H#F#DB71CfHwkB`4!_Lq0TYLoZr7mk`A$Um^TPu||TxU#+>d5it^WZ}8V4}UXf$Y2Rb zq%g(KbiE_`hv~+(NAIW3Hd>r3mGDfd?Z=#3uWFwc9tm%72Sw)LeauQsJERSq?|#|$ zO_1@A1dtW;#u^xp-3R0ui?_^BH_`WctE$wHe&A+0e3. + + This file is part of Privacy Browser . + + It is a modified version of `payment`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/payment_dark.png b/app/src/main/assets/shared_images/payment_dark.png deleted file mode 100644 index 65944b305e84ecb4b117c223212da516b624ecdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~t;+`&! zAr*7p-re678!B@AygBR+JYh^y zou(EV!ZJHSv85qnvIH-STY6Ays$p4h#kG0G@8|B=H^1tAt@)h$Ya*-fKjiV4q~eK$ zUhWhx)|oUj`+!;jX9cr`>G54w5BMLHKj8b2>tbX5rm3CFA#EQ|4NDEv9Gf?3A)h3E z$ox=J`sOAs$>)$Zk98l@J*imd%|Cc|hzXXvtMRic80#~~Gq3MEbNx-(P5y&xUmYo8 zF#4SPz&&BFRXF!n=9rF-`P!5Fcxx`0+5K7kf~7#&*xUZfQihagp%1)L`=-5;`QVu9 zw3R7Fzwi2|sq-#ADVjJ_e^dPzi@>`Rr@hkLVD~j6VkJZRhllq3aZLASTI~>Oxcqf* zhU>jKRv%gqEt+clzg_TSYT}-M&S`m!=IVU)xvzFj`BB$!at+v&9H!ZunV@z84W$-0^dA3*@WeO1|Fds+z4eg= z1`t2H*`liz2Bi<4oU=2IXOv?;?q0TJX(iVh_apbF9GtA};PQrPyL4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa}Cn><|{ zLn`LHy}R2lBv7L5VfaOt4*`NoV#l14lNL@<^GZ_cTq|n+KsG{Ruf$%4{DT1xU#j(l z$Teh?2xv7Oz2K8#R?YjHq3-?UKX*^1z1_R-&*%4=Y!g&GCn2Fro#m?*zV>14K2ZC> z$l&^gQqwHiA8c!w@*D5gZD%$j_uPWimyR>TE z@nrw^49mU6nEkn~uda4Y54ogw&Zy?@?vO3ArMc`gShu~_(R;}d{_%r$VCXFfbWnze2k_q_i{cX4|&U3m4n^;h68u?7Eo7&+1z4p}m{ zY-VmTW_ZZsV8JZ#&d2-u-rJW-CvW}a9+%FZMR?@IuILGDhkD&6zlPUFb zH(1Vz=DWwN~FxNV_HqiS(*lF{WtLqs*Z1{8}Y6C-!-J@e`7hhL@@J%uO>a5HM zmKy>$IzRH89ZJ6T-G@yGywqJomtrc diff --git a/app/src/main/assets/shared_images/privacy_browser.png b/app/src/main/assets/shared_images/privacy_browser.png deleted file mode 100644 index 6dfc69892a3a1b3152b242560410bed184a0145c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6547 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. + + This file is part of Privacy Browser . + + It is derived from `security` and `language`, which are part of the Android Material icon set and are released under the Apache License 2.0. + + 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 . --> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/privacy_browser_free.png b/app/src/main/assets/shared_images/privacy_browser_free.png deleted file mode 100644 index ed2ab62b07a022a9e04d9e79ce2f31bf5b197973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6340 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. + + This file is part of Privacy Browser . + + It is derived from `security` and `language`, which are part of the Android Material icon set and are released under the Apache License 2.0. + + 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 . --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/question_answer.svg b/app/src/main/assets/shared_images/question_answer.svg new file mode 100644 index 00000000..43f5f0ef --- /dev/null +++ b/app/src/main/assets/shared_images/question_answer.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/question_answer_blue_dark.png b/app/src/main/assets/shared_images/question_answer_blue_dark.png deleted file mode 100644 index 65752a38f2149e264792137ba496b78b73d04221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1101 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK?8y`6GZ0#)ypD%^aaIz8*# zla&t+PF|qfdTIZH=X07C{4ET;l{ZPOWt&1r)TZARFC7cL(#$@e`@HXSjs5eRciV05 z&umFeS7rjb2?!SaKD38FX6L5@Pp6Ob+6uOuY~1DGT(R)zn}g?`H_u;_e$)Rg1KVTI z{mYMridyO`?d32oJz2|HmAUEHwcOW^aZAG(nm;blkIG@2n7F3VDnrVo=2OPn`pZ=l zjJBS8Fi$KzvM#rk?Qhx7({mqRYo4-F=D?|`?cVzOzgN8Pb>9172nhu>eb zlKXEcTzS8$&1kClDyv%EX9}_6P8D~7{5coT2{sh7Jdk0uaA&~ByrcM<@k9OLkB_An z{VF_q_`kqJ-O!(D)mQfGDQ3*Q{)lVB{>4f~RxCdgE$;pGySDY-a~ow|R^f+-5 zaZZ_IL2}cJSGQmDi>;RPXSiFOQ}yJ-%2n*b4(wl-6)pO-(U857cWUI*y+TB}g^*(} z2!;Lyd5-16q0>r}B8!w7)l41yYJ1ov^oaGqr_BQDK&jqm_c_<> z{PXZw-rD!u%N=k3o@i3d`ryoYzhcG>e{@WR8BU+Sb`WS#q;&*?j(zoK_5+`+6Ynu> zOW9W5_w;%GJcey9-_QA73!7(d#~T%H&M@u1;nn+`JV*Do?iV}fvg6I_j+VCh!lI#k z2}V)7q%+&@yF5u*^8A?HnfKfQ6K`KLu9)V)u$foz=j|%K^=FuGNb=T&O+4Si;WL9> zL1~k1)V_6>A2A31j8n1MIPbXd?dZe*o<7YD5nuB>(XocYx0E{RSp<2F?qCvvan1L=;q*1FwAv#VBpL$1`38m3kop z3{YNpqmn{H&k>-Y(d81LriE(C3JpG{qKu3wYdV4Q#q7Ne3|0>mfLh(pNHa2)bbLL2 odO}C}wfS4nJ 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. + + This file is part of Privacy Browser . + + It is a modified version of `refresh`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/refresh_dark.png b/app/src/main/assets/shared_images/refresh_dark.png deleted file mode 100644 index 725b31070ce90ec2f67b98d9b7078333f4697e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2205 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 Kmt5yT&-w?=EPWUN diff --git a/app/src/main/assets/shared_images/save.svg b/app/src/main/assets/shared_images/save.svg new file mode 100644 index 00000000..f2a50334 --- /dev/null +++ b/app/src/main/assets/shared_images/save.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/save_dark.png b/app/src/main/assets/shared_images/save_dark.png deleted file mode 100644 index 4b39ab0b3eab8ba565ac8b47a69737e797b465aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1432 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. + + This file is part of Privacy Browser . + + It is a modified version of `search`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/search_dark.png b/app/src/main/assets/shared_images/search_dark.png deleted file mode 100644 index 871bc0c1fc9d8e66a796f8d8f2ee0c1d77447088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2033 zcmZ8ic~sJi68?cJhFaI<=9(g;1<* zCNzO^IW7dCP$(AR(UI{%m&qX(F>zs4D~{R#pb(8cjV2`BTb}o?*L$ru@LABejaWZt z={YOwX>}Mc=<`PxXp|~l;0|XxZ50#c%o%n85Ae+dIl0eRcm0cba%q2a6*6tt^A5=1 z@iw&Itt-?rt+Nll>`xh+&PmL$v)vv^4;|eJ8{0YAB+yL#9>&A*yZ+W(?1Qa>N0ojlqTA;^*n0eZki~cj z0nBbERMScB4kX@z#BLmKyLiey1;=Z2#d}Pt99xjng_y|%$Q%wIJGkm5BuIi(im7io zF|^O}$nQBGz&Q9Udp7VkHM7oPH@_TtBVCO{qL#2{gRQ7*RORmPyXn^edl@EsHmo14 zB*Y1Irl06XnOhC87@@j>V+7F#_XN3_Qf2$w>)BI*MRZ&DO-Y)yq1fIP|9C@%4q;R; zQkjUZh8v09a6PzqoFl`h+0>S$143P_CDy@V%{Ltu&ZMJ?yC*0QGfo!Ska&i7Klz_m zf8lbsCq7h06I2s&;*b~c6xam!0A~)Xi8tb`$!e?6CQ}zEFgzQ<;u~FBP5Xt(Z3mmu zF4n2=6h+FMDqGQ4`3{(`&M1+Ce#M#*$j>>aD3&7I@@a{-S7sq2<9gEt;5kxrtTC;Q zD$*{D(G=fxd3|88oz`1f(A~{MT&{1oxv7mi&ma zR1M4pUF{ebzsZ8~jx5QEV%f`j?MPnQhMmhpPu?U+g$!HGwT4)%70zmi%ZL6vBB^i# zS=j22YfCCFfu8DUMc&T6zz)4T?B?aKb7KPE7yU7}V4)Tmh`_yiyM;Q}ZJl z$bfv^;~8Ts8iTc$L5V^i(Gw#?*y)Z`_%zBE0|+cc)V0o2!gK*UHQ&aoNuu{r)^e0GG}u zM}o-Y>~Cx{o6>n6QT^_F4AoQG1SW2Qt|uR1kBN(l2WZ`{ecWBn*CH%E>bv2_zLTQBT{3dw=_?>h9? z3g60wGrm{U*7E5JI@Vx{Rv|8&whL$@e$ZPp;rtTV{w~QWaIi6p=0n@l*1oEs zS8eF=%`J73YzEjT4=k%}H8xL9fvQv8F*CU%SCC{nWo`wNZ*sWc)+WUv0R`-6Z*SPO zrw+_((aonB_x~-k=q3C~c(VVE{mX}sqHoFIVATS~1<_W^{*LF)i!S5xZ5PoqF+F)d zV^jlX3KBKN_hL|qAV-1p3ec^Mf2FknciPk!+1jxyvO~DsL;Awtk6n92_OiYk~4ojHP(SU^vcHNEBYkVJ2R== zWG{B5ti^ec6`0_QSMTMUM5qh9p*`JCSOQixQkjTr7pRxJz_}(I4Z455Q-!R)yv2YW zre)|yw!%xg;qbM;yZli+xq4S=6@B!PzF|}+-*%iSFi<6X-jsBXH>Rb^oXBi>pYrq7 z4?xg1;Vkegyh1;`YQvPa-kHMt7m}=CbpInB1p-#0n5b0c4k*zDN!ceU2{5%^4pv#J za+6pVbHH0i#J-*PBfLJU1VfW_I{=ZcY(tM?WKF~gzh_8mNxhWv8obY zJajBDxAkSZLAh3$>EI=NtYPrHvj`)>ixWVM`cSdQ3HTgw3N^)v2w#GFSZ0 z5no3xsOiCnlju3UFPGrx!6MmM$^@lI7R@;XgUDMH8!TWlaJSU5lwgnyOz)c_Sr<+0 z{x~=n#UI!okq1|lR>I8B=EDy@gJQ|;o7P#C^_xq9NOHyx_vo(L5-_$=hzbVpI60&X z-4CM^c0KGoe>%OW$^{i0IHY5!0@p>=Il>P{E4Jp)|9!T9!ukdO4b64sO4N0<^gRPu MSKR3*&Vd>K1q-#d+5i9m diff --git a/app/src/main/assets/shared_images/search_light.png b/app/src/main/assets/shared_images/search_light.png deleted file mode 100644 index e49d75459090681cd583c9c654accb93a5ca3c76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1893 zcmZuydpHwp8=tme4ii>yPH)+;*QuCfPGJpOH002Ph8H<5nJCs~POmR z5hm=Jq`1g;pY$6L0f>UZyGe=`RWcw=bcaOZJShMGlC)=HYN@TEB2p>ZmKg1NDJVMD zFDeia8ykBxgd9fs(=Rgc=%uKO1@jil0D$-xJl4kTYT;awSDJ@Ate0*?m{>4=?{->e zta43D6I`sI0rqfiA2}sgB~0?qpK7;mwYFKEOp>#M1=OE}1)4}BQF?}h3>?C~=EXCw z%&%0-TKVWZ0~cn#Q$|fcd0O!=ZEda7>)Sgh>lfnZwi*ARng6!e?2;M*;BJOFV?4o= z=jf|rP+j2&c(s=EkO$$Yp=EwaQo+C2PePFgj1ty(WPydVgG(y|$W!4_Ifk8Nw6fhk zhXl($PPx)5qhH=v*FZn-f@u;;oCuC)edKJo9~CoajE%((eNER25bVM~F%|~oV*uHx zxjM>$m4t0Rl)4b5KxDp_N0p0Rg+5N(PS`kiQtW&K%KBD_O-7g{PrV#Syq&33jn|EY zZ86^Er1M-o50!=vf@!@p>+Bq|AVqjk8*nNrbOt)fwNhW+*pX7jmR$b?cglluqz~D* z?HC{FDkTfjai2Vu&a?N2zbAdx6i|E-ktPOlte658YY8Q=6hwn$jeSG>9o$$4-*&Ft z1gfwe(?zp60peZ1wMgm_s>&5))IWyrn)renAh3cIYcHvYiiEF9!fM?n7WHXk=H^Pu z#Bq2$6pvti0(7HBiRY);dVMR%A66GGY5f=$+$wC$P1MRti5=&T=c`Dysd2cmEr3D8 zH(tRW#U_)q?>lj1K5CIfhGgv%2~(EKi3yjHqW|7X z(@XmdXx9BkgB4p!pY#}c$L}sY1dXgInXiz4|4^_$>$UB?z|w&NTAh- zm!guJ^oE4>Il$zJHe(>ZSx49Cz?GYU_uwc)RgUF@31gnV=&|rsXz@c_sJFJL?j67j zOA*D%kCfPi+)&L;6wQQlX|8RK&^uzWvHL_X1;!3~I^6Z@?5lUYt>hV?+wuuEFj+-- z8Ig%s`fEP-t>+0;#E@!LsL|WoITs-d zcf>hfyVo}3bt&chlkk9pNp-@E#%Fdx2Cgi8STLQ&DY>~j;0WB&{NRh!CZ|RsvN|g- z3j?)IOZRvQGe+$UV<9Fbv-Zd+bkp)9_+ND;l(PY;M%*;vtt^x_Kl|8>pkICAJYC+*s}GD9O_w zs&%i>E9dXRrU@)yI$JYm%{nEA9Po4l(0XKOI(W3&^&Y|`)KhNJdJ1;#*qVoq)dIml zvYWNFe$3a3-#&13=kVmU<6Rr!r^Cv03?y2jKE}NX>+2!Vx!W300bxH57T zV#^eTIyW^m57KTC`{6#17$f-5rz986vUpXp z`y=pUF=J%BzKkMU=|@2yX()w^DzagQ&RJ(U|A__9_Cx-|O3BXQ;-=?=Czn%~`XF~# zaKt7cn(Z=P!1&FTN&_yQ)zD|khv7Fg7T?*Z2?&C+n0+L*5wUp?^Bat7Zd3GSk4nTm zhZF`pRz%l!6>*kDSXJbEeJ87kFFJ}cRUIhEN_0q(ug@M=HfAma-5($|C>CfqC1&%y zrMZL?7MXIiDahr0hkuz}Jc3;8s+YWO%8;WyC+_i{dv57U$G=I+|8)kkDOWbLJ_GAp RUlB. + + This file is part of Privacy Browser . + + It is a modified version of `select_all`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/select_all_dark.png b/app/src/main/assets/shared_images/select_all_dark.png deleted file mode 100644 index 2e58c4d0321f96b998ad842cf2e10f909dba3ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1082 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKTIa_q8X|>e-piXjWMdv_#qPSX zbmaw4cUOUCuaEK?UiCaj_d0Xf@a=T&Uix?5oabu3^S^T&J-u`O`<&VQ&+pZo|2~g< zl8PrBH5+|SNt<{2%zUHIVQF#mKHSi@%y4>kDa)&^ z$Njbj${!Xzajno@2eAEZJd|n-tf44e(-_TGkaL(^mpu@%4{1fIc?^8#{JCc zl^^=oSB5qCH@=?vGcC0sl2Oe1oA&OtSBv&A{FyT|KZJFfNJ8PQ{cJL;Ph3`(WnP#1 ztXMQLG`(T{jojtmj&~oJF6y|Md%{fh#(wT^u9xSWJrn-CEo2VkwGX`a9U~aeo#9=n zaiE%2^44trXKW!N3Ewh3s=uAO)6mtqAiiNS^X**U6LU7bT@iiYSxc^aZ<^lYAKTSa zydZwh(tgI~6Y*w;sGxN7%-08A-TVHkbIX*+{T=+z--I09+VD_xi|`sf&F>p-Y=5jD zE3)eFaVC>=##x&g&PFyo({U&kTVTn3VGe6X-Z!5FmoxMH?9M#)-|2pE#m>vSgDcoF z&f!%3pk;T~y}pk7&-$)ArtRb1W3nmNrRU!K2Me{tTKm><-DA-?Fyp*ryogn{)}84n zRw0|ImB!>QZg5XeVs&@E#D3PdI-;wazNfld-#nkKwvPp?OM%+MH)>UU`TTMA=^uA~ z8`;gTzaX~#zHF3;)%SlK^RW00V&Uot5vyHl1=&u|rsVQ>zdNoENj)zQocVWX>6t%# z7FHWxhPmYMq^;ZhTl7`G>8=YV#^H@$C+0Txc1XW$@W2s%b#e$ux)AvO8;2yG3JG(zN&x6uw3a;RcOM?MHf1La942e=*Z{M ze#>y5X}$Xq`Kbp*g&p}L_Q=#sn;FlX-tfIq_(0j$2>*?_W#^Ze-}r0(JL{;l9U=!! cx^lSw_41G?+t-4rzFVdQ&MBb@070+si2wiq diff --git a/app/src/main/assets/shared_images/select_all_light.png b/app/src/main/assets/shared_images/select_all_light.png deleted file mode 100644 index 92aab4e2f40c82c0d17352de384b4c411d8c3f17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 973 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)ldwIGz zhE&XXd)GEQ#8IN{VRWzNCuWyF8Ycf3Sf_UM&b<|>64unzvDa72(S>{VjjrBav$}?< z)4CM&v>wR|T+9%B6Wr1ucHGIeFzvkc?3{bQn{p4mDK7Jq`=+w_aO4CP&q*+(wVi(k z`#i?(1ADuk-(%k=Zs&D2H050AlWA%9)}PqJUbD=){PTg5qs6OzOitY4i(x*;7+v@C z=QXzDw^nRp+FftgcX94{>jS9?nx7nID<5w7dm#IP&Hn$NuAXNpV60%5>Eh|rIiUDJ zH8%U|F}??u1qNCMs~B!K9zPHgFz;V(*SnbfZjNrP1EsslvP{aD!j+qpxHj-xNKaU7 z^}KO!t+NuBL3{m&wXK{9+wwhJ82i{$GAz`8v$=>Y_ER9U17`~K)9+@P{=a;9?;O7) z>5Qh<8Qy12PRWWZ&#wQnETC7Cd%_%6k8?~a>5P*$Gn|ZUc%tJ_B&M*lW9os9r%wv) z>dxA7d3}w#xAvhmNZb;e^2K+Af3Q}F7VP2aW7y4geA>PF3ucOK_sT6?eIx8x)xS6< zWRsCi=#JphyL;e=>Vt^LJ1H*Sdjwe{K5u=&n~^eqW(6mvqaa%K7BT3Wxo)$lTkX!B z$8|L$0_tRBgMmKjE%JW=3Z*wYPT18$6F|1wBkt+%m?pD6W;@`N_)K-z`T+gFs`{px z^LMI>X~g&G-hFc`>7Vw2nTO7#*%``h_nN!BTF7Zz91 z1WpT99rmX$?@xPq?(6oB4JT|H^BWf*cz(d=?>p@Ro(geMiM^U%Yzt<*`}IV=tuU-H z`T*kt-;{zQ%P!dKGKx1!AJ8danz1Z;YtT&5UFDbfOa7oIt``njxgN@xNAkf@z2 diff --git a/app/src/main/assets/shared_images/settings.svg b/app/src/main/assets/shared_images/settings.svg new file mode 100644 index 00000000..e0cb2bc4 --- /dev/null +++ b/app/src/main/assets/shared_images/settings.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/settings_dark.png b/app/src/main/assets/shared_images/settings_dark.png deleted file mode 100644 index 29adb3956cf64e1d6446af4b4659cf999d30939d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2452 zcmV;F32XL=P)-X|?eIqhi1+J{eRR6KkRo6W?k{Erp~YQ0T=LP&im_ha$rH z`7qyU;q)B(?b&nL-)4S~Cujb%*R1u;-h1|%HBzBaC=?2XLZMJ76bgkxp-^Z)miq!i z1I&^%OVa4T(ibG{HnTl}bqk>Y9t8%7#{lrX+;)bfH8TJ(LsF_==L|F3m#D9(jLLlh z0a?`2zM|5m0GQU&zM|5m0C;~(`-(~lfadoVl{P&D9+xyRQFkZI?7BpKMWq!p0C1Di zIbV_{0`E%LUo=_~0Lt@F)`|zgwgf76f06FRS-Jx%lg0B!(o2gXI}BIm4ww&2h@qbh z;L|{V=Ue(2U=y%7koH($EwDf0_y4zJKkx-$Y#^H! zb6(}C8yEvT2po;)*UIz(UjeT1uxBD}EOw5d-49Hus+%2Pa~A{G5BwbH>iatIN#Mo0 z-ipY}!169_S%kBFq#wz}Y_8{x!~jdEo|?4-Si>;)J>X{GcNO(=@&s_}Fm_D9*|?*k z-T<&9jrVE-i~^pnF?g>7zX3kh(OZU_Vtb9_z>1Cy3xEx{d%7>%fzXMr;nx9xm6CoI zNbZ27se!a|5z>ZLX7*ShElGg`02nW6pQLw()GfTh5lPd{>_jNR(CYx-RB?VxZj$u% zkb=Qx0AQM==Om2@rCAu3bCTwn+1?OhA!mSfD$Y;A)slV?N-W3>fO}%!8bYhkHA~Ix zk99?A2LN!Dq#csx)YU3fVvpRd;D2>QLfitrsN(z_%#^gYu1KvJ0JvV#^OCNwdm#lc zj?29k9`zNdI|Dqd;{2RkC+XXD1iWVeV7{bh6n-Cmp&A2{7Mj^JK8@?l0P9qo-vmZU zS_gRjn7sl3m!$9!pSFc4d|1+bJ`F2J4REcb-I8we=`b^gBt0o0JeKW42jU)@m!{PR zEKFeg9l){7whpBaxF@#lLkHqk;Hk`p57H0Znb7vzsh8gulI_5IQ`tUrAg;lsHs@r3 zh|~UMY`-tF-QdQ)@?L}(gRu%Yn`sb!oYC&}nQT4_tjcBgumB$fUPwF;hw<256wv1J zz`?{ezXIHm%jU}h+z4z0?MV^56j_F)W zOa^dc+B+ZLfO~=0A`Z%Ta@#ma$2qY$33z?z$qq1`c-yyU=eBPUU~VKE_XE>oUVGF6 z5uK9iF-o`}?)Jk@BA%0UID+o(*k$Qcl!%G(Y4ynnn%M)vo0~NsXv0|C8P*|(-AapiJ)1Rx6}j*Kq~^^-w`xtM$oLwj0l=B#_keQ1i+yP zn#qzsx&gN-BgQpFf7^)~0G(ybSrMcs<5IVq!d%5EjWefbmx6(NC2do@Dqkxi>H6@Q zNV-!c{hcn0Pc{P5eGWbdWG_jB`y3oQDWo?(2a`S_WOV~<{#-(Po0||qzLc@P8#mR37!Du<(RKh0!uJve>nl+O4;5Kb|FBahzdDh6K zdu3m9=z_`*ggybV#iLCQCQI5N=>^;>+T3m%0`q`JB)uqUy?Unv{^L~}Txmt3{-rmI zMEz4E7m4Z>hhNM~@+cDJRa*}C-u+vjwuNXcH?#ONz#zb%CEe}Yz7UkZn%PHv8rBJb zIdWy;0yEp`)7U#7z|3|@3VMQ7!HbQ)&X>ZJi{B^dhB`V0Z(frt7vJYA zP%9(I%>E>ChOdQmz7%I?&@UuCU8DV3xerZuo7pr; zpOSPe#DyiMPtvlE4Ih%UQT298KPxx3%?DUQ^_@XGfHlKq@&LC0zxU6UO3oJGEw@43 zK7ut=KXqjQSdzwjfdDplVOT#dwRusOn#+NgD-K>t4gjC%(w0Ry+q=mz++5Ea833kS z#<-opT09CpCa~mEP}f5M?t8Fb-G% zyfcRW#ROdk$N?}(F4r#ylg#W$roMyF^8p}9z;Q{b4~{r#X4wv_2t`}!1m;*UdOky+ z!D&kX~HF!2T68)x4WtBs2W<*~l(&FZJOE1V3V^3t+E-Ls69Ao5>F-M-VmC;7 z#LQZA3uw)2;2^+ENwXEclGz1GyUc8FVBJEYP$(1%g+ifFC=?2XLZMKI%>Mx&))R`_`x~Ozfv+@FoPGk5cSrJ`G zr5<`SsSKh5BZ6K^lZfg;1S9cvkRZr0zCN9zDnN zUH01h`@XY&u<%9K+5f$l``h3C)?OP7!!QiPFbu;m48t%C!zez(LN`Ex+ezrWEwIR4Gyb zOfBedsbT?;{ogVo(u2Q6V2>wFMnuNrZ}7`D&Wkc-it-2uu_!CVLa-EZ~gcKzJYz9b(1wg)j)2M;ZSHQCU<3*V=MVJ950IdOjw*`6q%r!m&;96iVFj~of z$i0DKhFUr5^wOsb-zrKE9N zOn-x=KFtNgfgecTd8dF)z`~NhN0BKu^q|JI9^i?RhB?4`m2(vgu_Tes4U=)p&2;*}} zTr2{g2cC4`$B4&R;BVmDG)~gK23`Z~D*b8rrw4g0Jd)Hw+8N+oa^`M~u-T9=MJz#YifR8?Lke6+{0{lFVY=R{=&unIVkf%eC-l`%9X zCT=oA$bnymY@H^h30RKI9HI3@vF}o7jm*|S;-cChuojutUC{!p%Ye3e_N7D3HF<#S zzW((h8AMtv2Kq9fvziS6_vuNmWD(g*(>e;w(-d9eZs1q|ef6|2(iB~dNyt8QXz@cx zX6<}kxfRSMU4EZS>jZArm0O!;B(*tY2MnS+?bqV5gza@{8%TB*!8uP6E*ogA2Ys~& zwJ-2Sdw@!T(;tK4cw|NyZ`xi@rL;d75+rmg7(F7Nn0e%?Knr zShHyJ5VFyeW|PMiO-NfbwGJYEnu~)WWgY~Mqt_{~`;$_a)#&Lwfh;(4$u#s%_r%%T z*JdU<8oMb#W%5sO-!TWhDyYvebiNmStle-Q6+$#Vt!`EDnT8?Y8wI~ND)_9xM*vJv z@R`MHTQu6F(RUU22mp=RK>HPZrbVMou1e3;#76*Jso=A>{$KHqMwW0idyI z<1_gq3d7K8Qx@NLVxhSeJj0`odd$MMf-ge*W6&ypQtGk>J)I{=cd&{vD~muQ!! zWhN;!3u)m)gjpmlP0?Og7Bnq<5^@+ZbSDfU+s*gr%B^4?**PNC3EZM9_hPbmH0&6D zo{jA^_|dQ|9}ew9H-T~~(JpuhVFSq6sPk0-adB-OZZBMFCES89j(z1&b4|VvBrdKU zMD_{NY!)>kH+&q*fSxGkr9i~WK;n|x0c00#W(Fx76W2M5Kz<&uEYv$Glkg~mrNRtut zGw?x*e{ZD-@AO4_637&=?@`D8M+#dQHI zNLJ{%8F&$yVnYvj*$yLjC?_dh+lur>R}J6&NMGiXCCKU4AtZNyBa&9_f>B7vX&pb0 zV%@;AxGRL!j`Y#VlK(y=6FJwkAUSp#<>EjNgoFwJt-~mzk%i;cO8yJQ1i}Ttcn|uF z2=w58@H78D9);YzSJolKhS9D7zv-N!1VD(vumH#q761t;N&s{>$ZtBQC;?zIK!Y. + + This file is part of Privacy Browser . + + It is a modified version of `settings_overscan`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/settings_overscan_dark.png b/app/src/main/assets/shared_images/settings_overscan_dark.png deleted file mode 100644 index 099edfebf5031c17e9af8d2acb8f12a3214da1b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1796 zcmZWqX*3(?8vbI5lv0B-megKbEmM0NyJ$kIZqe2ZooFv=k2Q*nq-9zhwbW8esWyt} z5L=pBQ|{EzQKdq}P?g(8s;RgtmIycfIro0&yzhIS?|a@K?{nVse7SzUXXIryWB~y3 zXq4v#aV2~U7*w2xokL%Vi&T<3Ishg04Ndd=@yVy!&~_2DLfE9vc6WR7hv+e zg~kgTJ(QwuwkPT8;a|O;H<**&=)Cy;y_@9rqaW&XD~z`>+G%>((NU)M$`bXi{+e>< zbd)>_-b4II#XsHr4n z58r^(6lln)K@KbJHDEfc&@?ai^I1a#D&*&~uL4rRaVTAIn=nG0IDX>9VGfQSR3hk# z#nQFp_iC6s`Ey)4{GQ!)ybJ|@jAEOD)Xh&a5cP0#(GVuO>>*{_$uJW6R=EH|!6PUw zvn4}s?pA!|Y`HM)pbmqat3&+P(diU(Q1`jLsOSva*@+UyE<88Mk9|9(JB%l`(QiLL*99_OLYLrY9E8%gJuqCAO%xKP}) zxGu3M4ty&tQ=)3_v@yc;TwrHJDWpjTkAu{Czxm6k37X@h)McCW^3+raI_392@rULS zn#@{Cf2GwJK(SuKa2K_`Zops*NFb{QF%Fh`i2aT*^fwSDPv9jb30&k759B+f9}bYX z#lfP9B6DinZ;j+5aeVRoQ5niuGkuZ8Rc{|c9b}7jEOWHqO%jvg$d}@8>Iy>)ETn6@ zoK_lkZb{PxK>;lnfA6s7`AVm<_W$DtS5PACrVYZ4!+SO*v<~f!3A#O!XQDxjc1(so zV|`$wO0r%^tXkRksLfdxtIpS)9}zIzEXA@Q$!z@O?4nVk27`tP z(=ISN;)?IfD&@|o%ie=a$E;opE;<1=*Y{J!yy98b)@N68!ixt~m;2<&(ly{iyrx7| ztAe`?9biT!bhvQx>e`It0h$rV90`~;Yi&K4K^wp&Q5__Cx&~(X)Mlt@FEOQL#>acN zuBGBUq=X902%O#PgI1Ox!nBZ*>3*PvM~sUypw&ZbBrzj zi+CSBY)^B>Z34$@C!xS~O1oM0F&|M)^PXB$F1JbYf&+lACf2=XH`t?Cr9HJl*1KT( zm$SAX$Sv>y>vFHQJ7D_O&?|0g{g@fOp=6&CAJ|!c2haziRc0jaeOwU1X`WM>!vSSK z{{R6+UlEM#X=-8eEQ;lbLC+mM3YhjXYdya<#+7y@tfVKJS%B`*C~}mz{#bx~Vuq zR%$F=@LO)wAyJeTyGwe>(%+^geHpoOhV9VEQ{-PQ%*jS*Y(=s|Oh0u;>PxW`Ye)z4 zjRk9<UZ>Lq$zg}80 z#ROI$8=v$9)$_vWIhzwE^hC^@*qyn3GJW3N`^&fJ9-H1V|7Z4!?#9zu5L8&W;bjUwp4kasU7T diff --git a/app/src/main/assets/shared_images/settings_overscan_light.png b/app/src/main/assets/shared_images/settings_overscan_light.png deleted file mode 100644 index 8df0441cea0ffc2e170890c21078a7b818a941e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1612 zcmY+Edpy$%AIE>c+1QfH+;1y&NEeqV9qicYWW&Tv%HS z_~OgGrwDKsT2MvJeyH_42#;2J1msDT*~nZ6+&mFqZyE1AXjGMV`pKv4fWrT9kI3`F z1Sbq19XEJzS?6o`Qzu4QS!O@K%(YF2|BDqXZsWk5^!nG=nf<1^=zmaDJ=MFsLT0}# zRyy6>?lQs*xY~CE+Mxi1jC&YnYmqDD0r8+qC#pu#l=b(nj7lBZF%E{@H#`O>`MKO^ zam_v{iP-{r*I4hY*U*pc~CW;#OyRx8|@a@zg8H?Rb{4Q0MW#C2y*5U2IzM zMqw$C$H^XRFVZzqiA0*1C3r_1-J7Ct&;!j=HFCzVIswXU7jP>eCq;p`C)a z`3=~8QlCdft?ebkdlh$*iJEsJU{-n}8z={I7Gxv$+*RlP;Go(o1Xf$#(Pi{@?jM+& zn(5l17Y)5eIr`b22Hy236;c@2EBzKIhy6E*=qJ_;MOfHmL=GYH>vqc#@9Ah2Y-)Ag zfX>W#d&!s#n~x&ASv%A)1)c=^cUxC(;aY=D9JJ!a)&`}i zt*J#l(`rG6D<}~ks06|N^9#pb4EnH44^iWqJDB!}1()zh>x0hV!ZWCN!h`GpUMKa!$cC_?E_atWnP~KZ#{if+dclxtd69?k9V_NXxe>H>D$yNx==U~n=Gt{ zn{6o#`=1n#4?!b0J$!0|@oo3NZ# zXlJCk>KgDZb$GR=dkmY3IBsk^CraIp+P}5ML!9yR?baM9tR&Rfpcb5jNhd=|&g`Dd zmWTV#ZM^9n1l*w!?O~f9Quo^!BYS-XD``#cnY6p~u`}mNNcd$8t--BTtHp5XLH0!S z)d`bz@b%b}*{V0{1=M2w3*!mvj>~$Fx0zQ?@}*Kx4E)})E4Gm8DGHn7olAxmy`Fe+ zumKT;A=78uwk+A<0i0ON0ysZKS+4eJ8q+x=%(6~oTcuD^e$w!H9VgE!cuB(czM_n{ zU(}`|uJi>q`-#l4%Qs3JpX)}n7l1TTlOmn14Dp*j`@J`6aq&Qo*|xD)Q#xwNZ9eKk z>2fwwzRyKg5aRtTTGtJ<+HZaMeF;!RhT%ylUDv-$V|Bkl6aOdUw21_Y`a38h z#=K@0GZd@*z5#sNH(Hxt}*8T?(x8H;-QFe33IBb^mzInCXKoC6jW#ec3ifTV+YV4Z~IsiPwSG{$2hV zbGUk;aj5%9DTT+GmNaUgo;IN)%P*YP7+U-i`izVJCss9I!41Yzk2*{w*!=tekwC)# IeuQ%IPeF3##Q*>R diff --git a/app/src/main/assets/shared_images/share.svg b/app/src/main/assets/shared_images/share.svg new file mode 100644 index 00000000..9eb9a7ef --- /dev/null +++ b/app/src/main/assets/shared_images/share.svg @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/share_day.png b/app/src/main/assets/shared_images/share_day.png deleted file mode 100644 index d534ef76149446be7d2930d8154a5c65c91bc98f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1876 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 diff --git a/app/src/main/assets/shared_images/smartphone.svg b/app/src/main/assets/shared_images/smartphone.svg new file mode 100644 index 00000000..ca561d12 --- /dev/null +++ b/app/src/main/assets/shared_images/smartphone.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/smartphone_dark.png b/app/src/main/assets/shared_images/smartphone_dark.png deleted file mode 100644 index 13a662a32aaa0d4a9289305267e4322700f44a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKqnhQEB*K)gc+OI#9bUbOBgiexzij*36 zlZTbZ;?AzHOMF7x9VM6ey2yQhKPTq;b5@({`p;{M=RLPfNCSeRMPC^ijEb!dSm!W( zW3IkE@5Oe}2frEY-y3h>u<7g&XZ~}i{+da{nLCUzEbA`JogJ6TxP$FZS4aL@zKc2y zXKc9cu<~uSa(3Utl&1VBxBH_SW6Cql2XY%$AFX4rWjyD0e2F#{9}0^RJq*AtnF|- zb;i<4qG3N1HjPMT3>7BtR=WdYda2K1UOV&LaCyy~vurivoSa$)(SKaXL4xF+aLEJL z53Su7y;5owPr^oEV4hkR8p4~39{#81F$ivCvsrQL^~T?!=JK!VS?=lFd%gHlcE~r; z58i2ZOn%|-za2T;F=M4nj^F{t2bKn5d+!#WK9J(FXT6MWJ->h;_kqfUtyQ}Zhc(`O zHJiUTj>YweZ~|Aw^`!mD_ZZa8)_Lws%V$!4q*}nUgG*6YP}sncMZx1Om-pjK}w79}Lp{@C%s77(8A5 KT-G@yGywo)c6)pP diff --git a/app/src/main/assets/shared_images/smartphone_light.png b/app/src/main/assets/shared_images/smartphone_light.png deleted file mode 100644 index 9704accdcf363cc3f52e20705bbeef23c041674b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsK;H}N}xph$K#vqy|zqJDh!Npyuzz-WuL2ezG8-? z-aA2=)iP{%bmv`Pd`UL+AD_YL7nbJ17MtCz56FC2oD}g?{eWoA=l{oa3U+2iq%wSN z-CPyEZS^UJb0X(n-MzWW@oGGisR5h7Ifg@$4i?ND=?o8f6y`9t7&jDLUaMcwVfrBX zwYSd=rVUqq3GJ88V(4#BU#oAJsLf-*AkPR_idFw$7hDz{|3Kh-{~FIEFMj^@#rpk=ryrR2{J`f&FS6ercLm1kX*p1=_V2s4 z?@r2><$kZ1@;}Xa|6b)(=>yrf)9?S. + + This file is part of Privacy Browser . + + It is a modified version of `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/sort_dark.png b/app/src/main/assets/shared_images/sort_dark.png deleted file mode 100644 index 123d27998a7eb3d89cd7dca03a52f641fac5148c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0uyJY5_^ zD(1YseUX>RkjLeq@gmm@p(-BR1n-?0>0BF>?*87hR}ZKT89aEmsyboqRyDap^{ZBW z<&_WSf9S)+q25q{Mx1YyzTYSf)p=k}XX=IQM~cf=tvdhCykth3Y3cIF-9J@z<}e)M zR6rx{95H!gTfhv}I>UG)&n>IoRjXcPMqU4SdBbI#8j)QIVn29RcYmd*+oEUYpFmts LS3j3^P6c&4 diff --git a/app/src/main/assets/shared_images/sort_light.png b/app/src/main/assets/shared_images/sort_light.png deleted file mode 100644 index 03066a01940c43d49ae1bbbb555d980c1295fb0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0vFJY5_^ zD(1YseUSH%g8+-8!x9cpr@jfy+b`WL31!ee{cid5B1WJ(WYG7{s^GD4LGyjx+QYZ6 z1Q+-*bqG7mVR*zMpx$7?c!X2IkD>5;qxAbmX{fFPb2?KmBtJMdb8ngb0j|p%N`>DS zNbhes3Ra1#+1KarJZ5vKz6ML-)zj`?Uh&H$_oThgVL#imx6bM(7NY6^8G;Vjzq8I- V$>t_BFH#dE<>~6@vd$@?2>@2%X&nFn diff --git a/app/src/main/assets/shared_images/sort_selected.svg b/app/src/main/assets/shared_images/sort_selected.svg new file mode 100644 index 00000000..2c5201cb --- /dev/null +++ b/app/src/main/assets/shared_images/sort_selected.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/shared_images/sort_selected_dark.png b/app/src/main/assets/shared_images/sort_selected_dark.png deleted file mode 100644 index 668dbf1eda13977bba7f247ab31abb9eae13dd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 954 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~t=AJH& zAr*7p-u4a>4wP~GI9W|)fzqLv>j&)abi6y!`@$-L`%Q zyy`@AedzozzUFsj=Pl>XVYW>WzQHgneP6rSYqlM1dX0hxEbE@t7N(zjp37|Q@PFs! zm0f}bTyy@v?5yWn!2ZU!F6(Oy!|}=U`+vnUtZ%&Q>c2#*F5nvne~!(^rrJ|_@vjrR zKmC1saMFhehTjKH*V|5DVD$jP_c=COTX;{Q77i^lV^Jm!kfe6i3?%&HA~^B#I%Vc*3&Ikr(L*L24>_1ET8 zlATj;LT?Tl4?({?~SVJS^#8!OW4)@Q_Dg4r7aPLjjw>Ifg^%f_Jy&8_4zV z*Gm%kJJ)ad=XGaa-(|+GIJ;Ku!;>dZPAjnm%E~^-eXAJK?@f#iYuB?|*x1zU?{Eye zdhp=E=eLZvT>Mql@Fn{2t$VXVXX7wq$F=26{e69QK!;s@xHj=&3=@XaG5wQWYkMHU z;K!B@$A8z}y?fU_tG@o~+COU(SJ!2SpR0O=MNt6^6sNf>+E+WR7_lr*M&D$1FLvdDrH+gw8p%{xie# z1Fm}`x1@+q$*p_ta-nc8ke!^i?d!2K%-1KgZ=VKC64nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~t(w;7k zAr*7p-u4d?c4Tn-I9*X?LDQi){w3lUr7Hz(Csez3Ejl4D6jRc~$i!m2MD_mf+!acm zmqR~ank%U$J8v2H8)n-C@f(b@)cY2e`8IMIu(cgv*b(#f=v>kH+xcY}{w_b~7s}IU z{NT|>bvrQ!ev4Uuubeh!@=LRyUZv6C{2=$XaggYKP3=Rn*5CI$n6c?ew)LApyZv`> z3Qc1z;Mr66PBQcHGxHy>+gXA^+7`*QqiNoC~_ce+YeT%sZT;8L(t8+xLGdf7^=kR`~4Z z{T|PE?c43l5C4Cjl;W?mVCG0?c*vtLhq1-Dp@2=`9K#_=2Xw)8w+~6!M@cyUe|OkQ zzl;^Tj_b#!9(b?Yv(U@x!0%g=18nmc2^kBtYiptXf#qVyDo*aZI`4qhtsU|Te^)1F z*P5<2+m6FExiMV-E*+9sb!2^8YcV%=r=a*~UGHzkecKFh`(%~+F@$P@ZV z47*p)<+HUG%kth>v{;3ey}q4r#3{Py~tIt&_uJ7ja( zwNLH-S8}uYJ1aw~wM0NzQ~SK-|F3iWIC*GZeRTTK#&3. + + This file is part of Privacy Browser . + + It is a modified version of `style`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/style_dark.png b/app/src/main/assets/shared_images/style_dark.png deleted file mode 100644 index e00426b8660abd4f9ee189e6b7492bc5157e12b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2705 zcmZuzX*kr27ygZ(WlScKY-O5cm_d>yvNhI>Wh#S6vW>AXF_N_zuF@5zAx!p+bnVMz zO-2!EEKS)OG%d;+$yQz6>wf(||MNWWd7txsIL|p>&UtU0!=Hh}k*IkKe-nGi-IM|(y1 z0@2aY8Udj}kv?AGz8YZ>e)(UG5K1(;ZKH^eb( zTOo{-geuad*ir&6Lz52LlVDcuA$H`!ElJ5YG>SMhNua?LVY5o5z`V=MEKHT0ZL_U| zFw`44Z!4Emer-JqHeWX0Dl(26o@p9x`~K_N(2{G=aCPSoSBX)Vg_QFrYx`r#r|B7Y4!#LVUuTK;lsE85 zVeJE8e?pP*o^3JBV$#gJ*QBf7!KmM7_8;s&h|8j!g{V=V9j(f`Nf=yen6LpJW10ng zX*wcXEDwOpZP~huJt|i6(TKtnZQa`?rf3&h;fG3RcuNql94 zmhTWNfixdA2z(2mTM2vtY^gDKMnwm$Jnu0&5rkV-@)Rb9tvW@BuqH-TehSv^IQ>8% zT?@eZP^+l3?1%jeZ@SNNf)nk8nQ)nKWle;vNP%$m;O|9gZD6t-3(k;9dF+(4!1;xKR~3;He3t->`kF#b(VtaZXljOTQQGbXqOVs%|RK|Cq(~ zBqewFrBm#8Jc=Rp-Fs>LXa0Sv@>rR>POVmxZWJ^y336z!k%(AkjcxKZ3H_&>O~+&C zO<6#j2ep9z>5t5!L@w@=ng+B&Q){rG>-n3sxjG;`&5Z34{<@^+V1XxT*b!4Afnak4 zQV)`lo(D$+vWaam}uGbB(I@{N0&s#2H2|e=!XK$=l~N zOF#V^0FXANRxSS1uC$(Owein}5T|6_sKO4D+4bk^008$3l21wY zUgRQUsYeHwQbrEw4S{)+T~wa;;ww$7bFWBTJ_5@{YxCS2Gs>uNoe}KOMp1p$brM%q ze*5pn19_7k)MBBL^87qlyb`(G6prPRpN4$IFM>OwCbDA75NFA+kJfznE7XMr=@}Kw zTr5r#?6+D;GaL0IC9nre7ZxRNvlqc5#_SY!J~$>a1lYjQ9kgD0Qcdn3Iu!njigujb zcH&&DVF4KKb;T6w4bbtzGl=`O(#+$@J8kNYmZe76sAAQ@L?I(5ryYfXrKM6e`v8ze z-Us>oJH)zMaYuA*BxMyyqrQSH$lZR_YR9{!*NWwK`>J7l0ata8*~z-WV3pOv%2~2( z8B}vwV-aEkNSW+8!`09HpvQIp%ge0ZPNUDkYe1e|Ngw}WV*ipe26m}q>Uen>anL=4 z37}EI_^|5HLwWfr)LE3h=r2N`rpt4%8p*j@TaNHuDc{IhE9JzuDdnf2i9iIdz+4Ee zPGem!N+NB_hub3Crk`rsi1nn!QV>s3R}eS*T!38FCwjD{(Dx2)&l(E@pC1%5qBKy7Y-_3KS0mQv^C(A#lxiMGo$NM>qJ}xZ*T0X5^TxLwU$@z3^Vh3 zY|#tl1bE59%I}xD)>rF0Pc&Vi8mf*}yp{#k*V~XS5bJv)oVC&ZtY?%a$cC9B`Z9X@ zRaxM-Jqb@Bsj∈3=K6rAET%#`$3$5p{aR7s`jL&*kEY#3Hlg-ShX6qMh{cowk0E|Q@mJUxh zGgvY$YcUTPgIY~>H}%gThu0U>*vAK8us?=9S6%sE4lFpxxP@2zbylwlp&h3~oDG2^ zc^RXiRBWH%XC0i$;R=H&8#LdmpwDoMQ>)oz?*v`@!H$q$?NrTP?eU9RJM-z1Q~;Dm zU8FKdCx~svdSl!SeV{RhBv8dFxcEZ zsWV!bG5L&iRVy@Z;^F`*LcQ@tq|xr&dNSDr-Ht2E(UpusB1zBh@VmhB@WkESra00c z@NJju8y-J#gZ;TRY4=l6qYg`$5Q~TCrMUT%rX@zzqb0Xb(Ie{K+qN@%FuXR z86J8$m)yntp~`q&QAN{nb@1r6>U>QYI}AoW5a%hm9}l?b6f*J6`r?K9E77+1J{|FM zeRz4W+lQ{<+|7iW!*CV3{&T}|{c@=JANx8DfexkV`vPvPn@04|V-s@+QL{7kiu1{; zzX#-YZHn_tg@k-`67v;3kx&nse8wye0EIJZ^OteoKQ%~bpMcVzI2>1 diff --git a/app/src/main/assets/shared_images/style_light.png b/app/src/main/assets/shared_images/style_light.png deleted file mode 100644 index 56b43c025e4c0a85b1c5bc481f96fd5018d6bc4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2395 zcmV-h38eOkP)?TK3K;c^fKg*e2>n8U4?uYOz(|2eK;OcI zZ}gGmCE&Oe${OMLFmMyF8TW=CD%*eyD%aX5MK|ze4T!U@hqz*hP+xV}|x)F7OjzE9o0mBX`6wM!PTtSPHyA`iAtCK4cZqP%s;~ z4tSgN4H!Z$3u~TcG66Ufc$D-F7FyN-c)sM)2hBj%-;)|60UgLE?4zj_Nl7R06zPABspNHJ zy`pV7mtw>811o^zfgWUh@CjrRCD&@hXiU&k18GUnQ7x3^1_tstRbvIxA=>j%TY>4|P9u!Rl z?i%5qCdf8qHM9~^uLbM?b^(qp_}^?K@@HRQ58!ZQ*6?QFh^iD!KqvBr^F$Su<&Yp^ zAK;&)cgCD}6>5@BqMr&HSbAV@F~*wy}8NCG6t<19Y{uv)JD%u zK3K-6F67V!4A2dHGPM$!(GNTrvw|E3fdfoKCWa=ZRwN_dMm`CnWgg4v4X_1S9BSI^ zUKzT9{{VkTtw>eOA$`A_o2((PH+6J=M|z{@CehN(<v5a1r4KmcIi29jL6Pa554$ z7L1S%FcDZ1u)KcYmVo6ofetdxK7I}|SP7W`X*b#@SAeT*B;a~U$TvXn{t4MR8)X8d z#!Lgw4pmqv2lyE9(LiOja$}@&>&zvg3JT=_F@F66JO%tIV)=Ds4)UWbO$Z0rl`!A_ zqj7WO^6N;DA6*CsIEVNdE`Evxj~auVjSP}YQPu%Es3!aMW-PsGE8T?s?DpamhJU7L z8mdQe?V&U;HB4D~nUX)^vTuNkOWv!h200(kPjO!dxXAOqk+>N5W#kROF9O$Jccueh@VU{)0S+hp znKy@^3w^f1;BdSKgFX&W_S0`9G!O6_+Gy*vBgf#8Y*On0Q-LpOD{7A!Ix zb+Cxm0hSQ&BFxNX7Lw7<@mkxLh=r11uzM77@)`;9(@^upvRTYh5lJ%K<)JUYAlV#649^ zKN2foz#}*&njXsmqNgeygNeY`6xZL5Y$k1YZgahGGzXYM9!Hv9i2HoS8^GNWb*TfZ zfQMW!9?h`1d{)gwmqWOngGK(2Zbfxe2k6D^{JtvCe2PAYoITiX^a5uhn?;-%>(%;4 zZ*{`5069U!m3I3iT!$R2{kZnVu^ixjFLlDxg>L`Ao#gZOipeJA4CTXs=VMf`3t~vk zel^YBz&jM>zKY}Q)_Yu|)Vofy21yc8bnA;Q%|3^L1T0h-Pgj-HLqS9IvoJ z5XK>WOAZd8O_lm8j!|#-s-c zzDVr=ni2juB=dOc26dHo6rq@zUNU#)v_9ixQ-QaABCfk25e2_ zsBwVX@iUlacha8704jAOx5^g8R-w1qRn9cv8^FKNJHVCr8Sh1O%hW48>xm(+06!o= zf~VZ*LXLXTtl^)Bzai%->X}!fo)Gd5@BlKS86!o1ZJB}pxB3cYT`zdnQ${ud*8vA8 zb!{tF;b+`Fq-vsoJws(1lCf+)c^S zX+&*Z8-Od21D%ZsbRz5i>v3(;UM0d?yV3cGsvh;fwGU>C4(HrRM z5_KJg%)kF02`cSF)(;*BE<+Mn8HQmPhG7_nVHk#C7=~dOhGEo_cL7_sBnt(<@vi^? N002ovPDHLkV1k07RHOg^ diff --git a/app/src/main/assets/shared_images/subtitles.svg b/app/src/main/assets/shared_images/subtitles.svg new file mode 100644 index 00000000..0f15f2c8 --- /dev/null +++ b/app/src/main/assets/shared_images/subtitles.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/subtitles_blue_dark.png b/app/src/main/assets/shared_images/subtitles_blue_dark.png deleted file mode 100644 index 6721719cfe038bde5ff42b0566db362526db6fa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l@APzW z45^s&_O5MCbf`r8$N$y5p|jZ9xIEsh6jf-Ow9LaJWZEsSH4Q9IZ_fm|wM{TveSF)r z7l+umvv(P6P++q&+Tx+Zxk^A_fpg04ht5i^5*qvTxn+0VEiPVv_epKtXUpgFR{uUy z=BMMz1auM-I501L>YAdmr59~J`9v?f{OnrDGIgy;@$aX%K7Cee{D05)$K}^c-`>gC z?)^@yL3!@{W&b4aRi2K`_qO?Bc)MuxyDJB0mgkrD{R=Idc!}|h-dfw+C*C+upQp2% zt?c|#-pGHi9(?MYo%(D#*MgmU>Y~>5tJnsm*=eQS3VWyjeK+^&m%+kk_14OsHToTN z>G8_qz}5GqA|JP&^*(MEq?Woe{G`!u2b(|a7as=NRoRyY1u?9Bx;0#7uGe0UW6#dq z`E*@>sgFlBYr)=`CUVK?JLmgL#g`2P2OJ6(RAN@I=ySbWns>prZtW@4=Xz`An_fP(WSxDc=J)wc;kYcyvg9#6H4Prmk#I`wz?3RMQr?y$4}m2a=Ue&4u)8;3*Jt($zH{7&iOWn0xB{a<|J zXwzZs{r``=77x3=y($0A;ryqoUVJQ){XW0wugD%&7I%h&f(`{N0y2!q%^=9{TCX-J&tF3N^6}Z>w_EE2Cfl*>x?TO!`jExWDPMXf{XcMH&yIgH zml&`79AH1W{?_hIACgYZc@ocTE4^3ouo2i to_%wDe_`Y6R}pqEZ5fer4v_hP@q@gZ!c8BwKxbBvjHj!g%Q~loCII~-<+%U= diff --git a/app/src/main/assets/shared_images/subtitles_blue_light.png b/app/src/main/assets/shared_images/subtitles_blue_light.png deleted file mode 100644 index 11c87bd351ea1f109d62e3e499b6ed761765c1f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1079 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lZ}D_- z45^s&_RijXnNX3okKfNUHEhV%?%;pO$H>bRrLs9+Lr|F*N^t+U0El;=EM2b2Zh787Uq@h=Drul zaDHkz|2wU?>3?_&FFt?UcIV!@ysPhDdHr<1>?*~6L4KP5tefnUZz;-66@wpEV22nFhltA$)&;B`cHgLRt@?L zJGb<+<>Sfr%xmUo_J`EpI&XA$@_yYj-QK@1FFpA8mc(5j$@zb{HdL>!nA2VVVP?sb zd-s?3FYWW^Tkw3}r5x`W+vDcet)0ZYg8S?2T=vgl-rg&dH}7YARG`@KfJ4E8iKCC9 zNtrs#9oD-duJ}G*HeEk&%g(g_Uv5PfuhoC`qkCHMKg$YM92TvcY~A>*ZcTmF+OMX; z|F@TlACKQM=kxiCo(z+E&qT);9|ZEh>F+xd?NGrYAj8Pw&TvrBp#X^~dzbS|`JJ5A zv$u*rejmMY@s^8k=hxr+c)9dT$c9|mL(7Y%R#orp{(RoDj_)254zGIe6OPysKJQP+ zx@+vq`K|}=Jhg-S`pKW^GW*Rx-@UT&gMZ7hZecv_2Fwb4qFNrusZ1iFL6P zU#7gXIde4q>XS#GErmDjXZyxgA9~4u=jRJME{l53Nt|fc#?0j)% zUW)$vx*Elwhws}<-Q`%N_Skp&TCZQ*PS$LBB|TsC_^Oi?n@>JDR?f5>m=;%A{F<`F zTs1a-7oXJci!qC{PR^fKSM_l9vhFRPXFuMg!xkMi_05jm>qR!TM@5SN4?4Ym_RYSu qZ?0c+YC}^a^{f1mvJHr7!SIi%d))(}>zhx>fcT!SelF{r5}E)H)8k73 diff --git a/app/src/main/assets/shared_images/subtitles_dark.png b/app/src/main/assets/shared_images/subtitles_dark.png deleted file mode 100644 index c6742b7efeb76fb5a851799555594db640baf29e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKo(3l(Yj_`IPt=fI%`7cJgfD|MxX6c&aG^>E&I@aFy+JtN{~X7cLZ*4~XD z_*pajdjy5F1e(;=olIJMJZbBpq;sjyWT$=p^Q!v&os+dj?{{z3_n4&OiG(umcUy{` zJkxw2^MTF>oeyVZUcX{2Z@hhA`+=z)KVBz_*Q{VL`t122_d%@97vJ67d-!W41nc|s zjAR_r_OaCP&5?<9-n@e^rl%uYd2&0`i8GrIh##0Z@#n0&d>^7*V%GWTuuqtIp7}oW z@m0lJSKMz17A)Lr^zy)gR=b0T>qTsNYhvbxa48t;Go-H)zj$oU=`-Ql!mIonws$?= zTA3fl=Kqgx!p!IcwhsbI-EXakeURaDXTH&nPb?LJ{Pp%XnBrzw?GQT9`73VAq?75P zoDV)6aNE+id>Nn2Pvd}oLFSBe46}?Ip7AWOq!Ke)tHImQ_`#)F*W;r<{!{Nrz%KWab@V?zOw;&fL6y=cljN!*>2ZIgRVV+}3M%^{?MI|HFa9S$QkX8|4|o z#iOcqZ~N3A-f`q__&WQWL5wlI9p}ZOszs0f*F97B-}`U=;eK3x(#mK0uhH}Oi{YQp zyrZ|i|NniZajN=(wT-)$xW2lbzgfRY>5)-^)Q`%PeQ95XH~f7+a|-W%PGAx_aQZ;? zfw>n;P2Pxqt5g2raT42c^L3r+?8B d?90Fp{OQN)cog@&+XBo_44$rjF6*2UngB$opT+4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l?e}zX z45^s&_Kv-uXrM&fM|KmfBN2kVAyQinb}%?GNgHf?<52zoNa_y8@&(!kYHXPaoNjAf zIm8l}rY03;dhGdru5qSi%)RH+Ywn($`Tj|@aj_+{t&ZBXPN)i!sAP9tR65F<)yjtmgUm*Jt+DsGmQ#u72{T z_a_@iI>RB!h5|N)IgH56@|}xo#kJqxJo-8N^%I|1)(5Wczx_^qR&Se+sTN{F>|K_9 zjAquic29Gib>E<@@ZY58=GQ_Q%o@MTzP064d-kV}37bVg%~S8N{L_p0y>81y?q%P8 zexIeMQ_1|t!c}?I;*V>Vahc6!Eo+?lsO-ve<^(>A9AJ3z7BJM<_`1Kk$}Ytxf2y8k zpKi?hf2DSdO&^@Fn*KHO$BkRX>^ENiOt|*r7VA4+`RLu#B>$`o{C(ltf^U84msYbr zcr7Wt{ajppLwj=C)tRdgct3dF!L~Lpi@Sm^M$&qzpw~M_x0!6yB=)pDYmC-?yL$3A s$(T=Tn57Tg-}Tl5C0(h!jQPRdq*I`@=#^?WFugN)y85}Sb4q9e02FOnX8-^I diff --git a/app/src/main/assets/shared_images/tab.svg b/app/src/main/assets/shared_images/tab.svg new file mode 100644 index 00000000..22019460 --- /dev/null +++ b/app/src/main/assets/shared_images/tab.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/tab_dark.png b/app/src/main/assets/shared_images/tab_dark.png deleted file mode 100644 index 1509a09c8162cdd197a13c8f1b94f871343c480e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa~tvYsxE zAr*7p-nH!(O_wl+bMgrGOvC+wnf}u)FHH1+WA4iFy9F|1JLLb6YiZv8iYG z-m@)=ceji0%d)yC;Sef2{Z-(8ISIiD@8 z^#8tP&A+5J>-%$RXXL)0vc&nb+@fUm*?ikr9`rBYyLxXyV)o~p_|V1Dlfs_ax^MsE zdHEved&Uj71syDyINTW?awy0!wkS6gun6=q9KtJjYoDl0u6pgotyv-RMYjILXd&Kk zvQ_SwCf~d2`lRK%9Iw7`YyZ5!{OhWh8MoKB{WU#2H#|+At@y*5mkFomH?*qP`ZZN% z+`D}2c}=M7#4e69QTfe(_uJ;yFx{xrdRcd0Inm(zEVFp2-{JB3jJ&Jk5 z-{m3uzZna(1z*p(pJ{FVZF5}c+o`YCEjfDb`5}R8D)q^~Q*SqI)Ni^M`yyX;ZJC|a zud?V*<&VwcXFc*=@Rs-FbJhO}FDug@FVwI1-ly_&&D(l)-Ffdy?^lOzjlZ-h4nJ z`0WK@#^S6D5ul)CiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$QVa}CGd*1# zLn`LHy}L0>Bv8ifqwr#mbp%YB0>&!-}0bF%P`o8KHX z8&V(C=AXVOFs+flUfw3m;-}yK?28OxxA>+p?YQ*V$)x9+t!Ifg@$ z4i?ND>G%Y-Yc)*n>eOB+eXrsFO_Vgf#M?rm%5`6s2JY8hxAERlrz^YTbJ@KaYgX>~ z5cN08q~Sb}SI=bkZHEBw;!^+TT. + + This file is part of Privacy Browser . + + It is a modified version of `text_fields`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/text_fields_dark.png b/app/src/main/assets/shared_images/text_fields_dark.png deleted file mode 100644 index c6dd101af0933c440cc8b33ba77a9a46828fa7a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKQ-Tgf0^Yxp`cCUUPE9Ot`k$2~ND0Bau+<~1e0_qJG zj7K;X{1^(EI)okOFg!vQimvA`us^oLy5e+n-Fut=6(_p>SI;c|xA#)IY+5kG^)1(; zs?VLbwEt^5@1!y|Bl2F)c8ot4_1frL{o9&l_QmH;yYug4#%UeQ1qYsQE8F$x-05>G z{jcBpHOm^^Sul0@9gkntj_4nkR~+BWzUT7i8{5A=U7-jIIS_py{5$`GhFPra#;^W? N_@1tQF6*2UngC?uyte=V diff --git a/app/src/main/assets/shared_images/text_fields_light.png b/app/src/main/assets/shared_images/text_fields_light.png deleted file mode 100644 index de55836659e048755b30de92ea064ca5c7af458c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKhEx-4PY<64Uaw%Y5SBbLPzBd&+gMvmWleJ#**nB97lX?o>1U7IK)w@Q6h~y}^R< z2&aM{Lm^X#Fp`jNt^9+uv~@rOdY4aq&Odw2kDIs8?3wpsx7lWshTy9B%6~HJ3eD@7 zup05. + + This file is part of Privacy Browser . + + It is a modified version of `thumbs_up_down`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/thumbs_up_down_dark.png b/app/src/main/assets/shared_images/thumbs_up_down_dark.png deleted file mode 100644 index 09d615d18d3e5eb1588aab40bddd51493d1a6aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1763 zcmV<91|0c`P)%gWlEU!QqcuN zjIJ11maqK-z6F`+LllJ4jUFnIFw9a*NJz3Ggs@V&dkK%4k^1$p&en73c+TEu?lsm~ zbNn7RtTD&h-?ztDbFQ`Kh7yr9R?;d-x0g9?PyxEcU#EftVS_xM{AQTqeJ(+h zBozOEq>RTNt!l5H}O-h;fDc+ z1Cqu_`Zz()@6Dy&=N1e=8^zx%$-K`mR|eGr)Sj~6V6&O24RM1(FrWe2EIvg4cjbfz zC_#J(1Gv(!0ZI}d!T{ByjTd~q`PKVebEi)QDDjsM@I?t@1Sg<}0ZJAhqWrsa%m5DJ zLm0pv1CVqQ@FC@j4=|r{9|ZZ0V%_0TiDOoph5?oU3!HN)i%wuMu-MFwdMD$JNxG8a zX`I|1%U%J@%Y7BH19+VL#0QuQJmj5(Hyyw%?<5?V@11}*CaDt`=beZXoo05bcM_hM zq^x_OnPq(|I{BMH!SEsskU3$1%n1WzP8c9_ayLNMGav{9{NbH|H@O?&TkizC$=v|& zdne#c&MScjfr)08^~MxASAZ3{iw}8MfUC@Gt9KIKy3(R5%2a2{}SJH{CT2Y{b|kAO|R--gPi1?;4l`X$|rQqoL{HH9lu#%&|t z0MD7(+QtXDw18!85PuP{hT$VVz$9Req~{wS+4JA0qP?@z~yzW06zm4n%Tdp0!sQExG7b<3ZObyfMtorzlM5=4`6jQ zz(2q%iDNEI9Iq18)c|jp+3%@>NjejFFjc%NQC9;jO&o7NFgkI}N??+X(zRV&P1s~+ zH>V2LHTC-eI5$UTA8OR9KP#3Y>td=H%Aoy-u~16*uof29g2=~dv-RPm}vN7om&fZ@Gaf`F$Ji$4LF zlPX?S=>RaZH-SaKaC~0=2=J_#y`4DjlhkzT*PR~IKS?uy7lGmOPu^csi2q5-pep{z zdOI*NW!x&#XZ|m#1Go{m12~`RZ6kY-;+E`Mirc-(TbHE!fp=2Jts-?=07{0W^+2-c z2&zmNpcj&+0$aTED2uw@3m6K|cqdRMQ31LkX*|U{1Y^8&DT}B8J$Z_Z#D}N=$B;CF zVny@<=Tu51D!_5>Av5tI4A7mdF8&%s3jicd0=AOj_YoDKU?CZb51F2Hce>v7+X;;I z&c%bM05FeC#fLBe6j%S*5-mXblj2R;EC~bD@3Hu%h!&8s_z(ujo-jb>gaI-q43Ift zfXoR4z<%!p9N8BJfG@ohaAZdq0G4?t;K-V+7eV0IZr`s1bG>sZnZv-8>?=Umn?;WR zF97?T(I? z0j@7`tj~biX4cvGAPnG7SqA7MK7;|Pz_lfe@xS6j7{C=t6KVeiXTRb@7{Hr$m;V!r z4`Bdr+G&6R#fLC}H|;XOpu`Uxkz|tgwtJo*R1`^o*z^INmHvLezX7|hFboUmHjY)50i&*>;~Y@R6Rco;KTS9 zkJ|v;WoF49We)@Ru)Bq0l8YZWA?e;GFZk9=s@k^wL90j_C23oTpD~hd(7&7;sWr?3D3002ovPDHLk FV1l6i93lV! diff --git a/app/src/main/assets/shared_images/thumbs_up_down_light.png b/app/src/main/assets/shared_images/thumbs_up_down_light.png deleted file mode 100644 index 6f1f7910c90c561909d7b9746285295e4a1546d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1613 zcmV-T2D15yP)Au>QBg7Rg~Z1u z2BQ+hjSpNzqVAGELc|z!A=yN6AtFA=B0feZW3mvGBt#Gdb;QKiD9$*El4P!nlh!*o z6LW8O^{LZc^+E0Cp04U&b#AK^@q*eUP zJPC}jkocYiMi>IdSy=qcW`Jc{4m#!0iTIiA0eW@ZbjqL`@iV(u#ZyO|JmNQj=QNzP zPLJ?-L%=p*d5+(nCG3mS0g?$&M0|kX1buNL^M6ylPVLd?UOOU4h~EURjP1Bn94YZ< zfxgJTI|Ug)M*Jo)5!rX=7C!oCvEW6=r#~Z+ehfICD=sVD__&5fsM$&4p&(&2acdGOl;eVFF^z0ZCq_JwCo{)^H+KH zp)Z7%eO&zXRhtIkU$cg^9Z_NiI9=NbO&WwN!7`@%0Plp2;|X9KPXOb10vN{=z&O?u z!1@fxd;uKf?R-_4I< zla!O}cK}}|5MQUZ_n6P~&~_?@ZD4(=Hji zfSUxz>j%D}rkh�KaNGA&m6YZ#6X)A3_3rrR{_u`++xw$6O~oUQ+Z>uN}KzMt16V zHE^@wcuBIDa2wEmI8oH5kYA(Ul0aN#8xVHPoJ+u&yf%mYG;M_NC|NtUCQ1f1&B_8|B9+E)4quaRlTSGp}U|L*~A0PY0NC%tWC4-y{9 zen@!Sdt4R^a6j-y3FA5yVVnf6&KOpw6+kIQfiJY3h(%qW1r*^aZ3klF6<|KY!1sg? zXqmt(zbz%-|K^KUQH(eDDNl#Z>c`;kSUm6@*nqbLYb=Kwv!v z#RsE7x3PpU^&8Z7L<6q?@CZi52TuS9-M?A<77+eTT6+J0%HRo5zt`fs!ffCzl<_`6 zW$+%rIGzB;@dPlACxCH00gU4b0Do#bpvbf*0DP|PfFhHg0AVj7t8CYHAO#x0RuXte zKe8PLE)zI^wV(&s2>gM*FtO};@TK5(76I1+XGc8dFkxSVn2Z4{k=;wd$;sWsz49l3 z)3Sqm6R6L15s&pLA>n2s9@9Aq@1k(!JL#|=7vC&Paq&&F8fEdl3Dl*`2GAS63h)75 z_RZ3uoR3er_!Z$2Tzu0!OakJ26R3w|1LzH31=)$0eY5ltHoSE4jWUXhZ<@zRM0{@o zby!y5w>yBl5Nh~50dyG7`MVv!JqW(a?g^m7RF2<>i|^=hAKl&a$4PJ7ey0Hags-)^ z_=dTjldlE1_%-Ji!ad#R`G#3Rn9{lUhFK0w. + + This file is part of Privacy Browser . + + It is a modified version of `vertical_align_bottom`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/vertical_align_bottom_dark.png b/app/src/main/assets/shared_images/vertical_align_bottom_dark.png deleted file mode 100644 index 3a97e6ab65a4bfb23b23e66da3372ac15ef2f1df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKtGcw8E-{<#KPlX(B^tdr!itkIS#!<-hy)TVFlf>{-{~++jq}befs%pTio>2%A3C~>|V?N y=k3N-e%5o(w*BdxQNYBZ-hfJgV+2SvNPp%|VQN4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lF86eC z45^s&_U>Na!wd{97nuW%8KW<>IBw!--XO-~)XT!{;FvK%K<&r>dy{p{Cq90$PpfMV z3(#~BNZ8%yd5>N0c&j~xv}zY-%pbs{{LtC{o|}B1~-?hpR7_g_}6nytns7xhG`r<`xh()^0{k9AJQgaEXVF|`0tkRN7lle>GAs$@jzXC zyuAm0SbvLVIi~+17)X4wWqK_BtLwmzqwkFVv@Ze&mbB^B&y4RL|Ngqs_UY%J9E*2J z{ccikS2^Cf?revR(y}=Wr#Kg&5@2nhU{1GV;56J_?RodA7)Z?1)z4*}Q$iB}ggwZ^ diff --git a/app/src/main/assets/shared_images/vertical_align_top.svg b/app/src/main/assets/shared_images/vertical_align_top.svg new file mode 100644 index 00000000..d738c2bf --- /dev/null +++ b/app/src/main/assets/shared_images/vertical_align_top.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/vertical_align_top_dark.png b/app/src/main/assets/shared_images/vertical_align_top_dark.png deleted file mode 100644 index 30ab1c5ae92846280d56bcc8a79df283e20754ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsKUAd{`h;uRQ&} zrDZ$wK4}Am?I2fzz>V1(k1V|VHzc&*dyedz-x7~cFXjJR@RE6EH^U)Lg*m9io#U@M%oZ`x~>SR?r6tmNbF1pR->HG*f}F#(xj;xh3pne`wk73{la9{$74aWN!HFa9U^{UgQL1Lb+elF{r5}E);e&Id< diff --git a/app/src/main/assets/shared_images/vertical_align_top_light.png b/app/src/main/assets/shared_images/vertical_align_top_light.png deleted file mode 100644 index 607c9e6a81da03e06b4f7683615c2904f461f8b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)luJ&|s z45^s&_Rel!I@awH9>yPHWM-!_gYR(d(diM7z?JuhX}oMMC=g=XuJ1i_GMH z*PV0o1KI!vZIwQsp2d8znYZPD!~SDCG+rw<6ftS2qY~e%m%O&?FS(nxFBqh$Ve=h1 zzSg|SZzk_i+d2DZ+>9HAe;zAeSJL=YStBU&GYd%k$g2^|xpCp6>juZ=efmwjmgPYH z0srIT2fJc{@@p!>23(ehdRgKmwV8VT0lO3@w3um8r7dK|-FcelF{r5}E+0g3_b_ diff --git a/app/src/main/assets/shared_images/visibility_off.svg b/app/src/main/assets/shared_images/visibility_off.svg new file mode 100644 index 00000000..82e11f4a --- /dev/null +++ b/app/src/main/assets/shared_images/visibility_off.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/visibility_off_blue_dark.png b/app/src/main/assets/shared_images/visibility_off_blue_dark.png deleted file mode 100644 index 9753a697e4481a78df44e95deca125f78982ff1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4065 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 diff --git a/app/src/main/assets/shared_images/visibility_off_light.png b/app/src/main/assets/shared_images/visibility_off_light.png deleted file mode 100644 index a4bcb6ac73c3904f338a2089debaf67d4a1852c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2400 zcmV-m37__fP)rCnCW0}_ zOkf|`3cqgu0A{3c*6>dS_z`XbuuM>JDvINu1a5Ua?@izu;62Clv~&UI53||81Yjy~ z1~3trQaipMI1U^IjsORMcY$|+-8K7rME?s-1^5Z>nIP2bU?Ole@Br{T;9m;gvf4i2 z_rMxp2{1W8JZ(X05nKSQ1YQRQ6@K`#{{pWd;=2Oq@DN+u5L*P3fwf2~PF3Ke**m~@ zfr}OKwI#7duvT%eRJH~9CjYNzj9FrT9ehi1uawpgYyi3yv9=AC2}ZX;;91~8MZ9f+ zWrA$>A@B=j%!S7?L3SIc`9Dz+ccHON;AT64&ne!uLF16<-F zmI>VLB=XsKx*~pOTswm_oC|CNKI(X$wgYJ`@L+>~?*q01y}&Nu-$+FaU=nZ^@~z$j zEU5XNl2?J7k^YCas3G`P@H+S->i!n>e-z4g-rl#uA0)`2E!sWn|GL;2z|45>o^xfMpTl^TGA2&N&UlVU!D+oMF5ftyJ4nN&0pOa$H_Ui^c=7otSgf!7j#S!RFT)6?`wvzJ-GL}I`P}c0et{Gqc|^w2;K!QbG+Up;Gn|) zJoc1p&{_FPH$^YXNp(>85NtV#qY_C zK30Gi6xa79f@d7geL~@<4?Er})>ccJ+)12y1C7{|@wh55PI3Kt$S=}W1dnj)kSv#m zpX7VBJbf8imd{7IQW{UOIn)=R@BZv>Tu4o9De4t12pO3Y?cAOLE34{ zeGbRwY5SgsbfvmB7Oh9d<&7tM1{xUskYJn*e67)coYv%oli_^HMAhNgysxPqWGsN| zG_*%+e`bAFE-@u%D$=8n!>mjVblogGMU(nUtFM3`lI~S7+u_*1dc1E)5zGy6%`6Ne9cc||C4e2k^WNRb zhRaG?FMGasC=v8{zFt-~A!8X-%qLA#@P4va?xr9MJp1;+XPuyv_*2NLNFz{pUgw`q z;CK~jiA?RIFA;nykbk4u6CQl08|hSt?Yv9tRS)47jrJje`vdvb$`0c`dZ{UoBnaR| zM<0I>(3iX-_;Wztn%T-6{*GW0vJ!U806s)k=E%wf;BNu_(TZSpK%bgfFS=Nb~O>6@C>#1TPVJdN|0`>6jy3`v~8m z5__Pj4-xDE&QaXk3kwO8TANuf;e&0b1+I?(S1Ru5l^cj#DSVyq!`0d$6AS`h)C3oT zmBbT36?unG3mj9?Mc}%9Z*W!y}($bb<8d?#o^qHW}0^m24QwWv`hA;oW+g-uOj0hu4v+KC%XNE zEE8m8D)42b=j;ziJA0@CKY*n5hmcJfvaZQrSP`UJ2{bfa$QQ*dq&Ka*_V;PX{DARD z;Y~pbX8_40N03gU_YooWB1`4$0Nz3>rCK_XF6FN}o>$rqq_Id{1Xd>~F`dZ5O(ud8 z(}9Vg^q2??I*_erOavvSf^3jsA}BE(=+-*ioWfZn3>DnAmD!Ipj~io%3bJjz6@G~s zO$1i>C7{`aR4e=vF. + + This file is part of Privacy Browser . + + It is a modified version of `vpn_key`, which is part of the Android Material icon set and is released under the Apache License 2.0. + + 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 . --> + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/vpn_key_blue_dark.png b/app/src/main/assets/shared_images/vpn_key_blue_dark.png deleted file mode 100644 index 6c715c5fc15b8de24b4c058460b8cdc66c2ceb03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2170 zcma);(ih zkQgln+Pu`b^MGTPy&Wbo>ZSvyuY;YEVUbrwmNc|!L$9B5$)ovyV1KM#>B*p{iWxT>-)bAqjYz%e-ede_j0iqI;hA44*360 zg)`}obyxImn+Wl@P3aD9xYX16fVa*9DL_@{0gVnX1DFE~o-QM9>iS#)YFgp#LK;GY zIepp_&65C3|D1Lj;aFX*`O%p?dij?}XdGm)x=t^$c-UtyQd&L6*mgwyWeX_#=--1Z zrLjHG9GE;Q-=~ImmT>V?S_*3G(@*7eW*a7KDq3ABhF z^hi;#HSk;iV$GWDL~$X+XD#^?`&KA0#cwCNtL0yAk#?CPX%K)>{GitdQuYxHm#% z9P8aVOlJGnq^F~|9aRLn>N7}mIVxSmx8dN1<1h3&8qNXX3%CTdX%zj9=~|^DQ6P_` zT4lGE*462*{=iocrZccangBM(v%5o#+b5d-Olgj(8B3Re0+Pj|7!uJ#ZtslW&)6d$ z$(NQuwoG?R(YdRoP}hgo&pD&j}3k)^s9~6p_Gk}M;klb>x zazKIHIcG2R2WP;}Q_Bq<+aS$VbFMn*b$Nle5AL(N*za?pv5nOp3{k-W-=?kg*a8nF;Min&da z9JJ-91?`+H_GZ6Hc?M(OdtmTWtB?BopJ9#)$@~~Wx3fxIzJe6!`)#Y?S-|$)iyXP6 z!#d-=6ddEHXX~+RHnVvk*C3@ke$2#2C0pQrhHTJNMdM<6_Py?pVvPDemKjLT1wN3v%1ExGD7 z6Ur;B(=ah~9DK^j1e9Zt=BzNkhRnBR>AatJ#l6R?2E-i*7#L9A+3H2EZe6bDb;qKp z6|fc>9oZB4krPh7-;yR!v1pp$ryx>N>!kG_%c|pjEqN)Vs?BN5jZLi`?%5HMd3cpv z(CNoVYb#??_D_JtZFyS$`fj-iaWNV&lVP#jOxl?*D9m~hT!_zVBeZ7JfxL#h&H#37 zPNMIskNntTnlt!5r0-+!q}S3GS_9L-V;`4`$%veu=fk0tD%*01Hfrc;^uLGK{cVrz zjgM2xs`?HQ9`9(%scqpi$)jhK=!wMaZv14Tu4 z!!IBoakoFg$gWTUMFNYd5;Sn~>u+5!zi@}|XQ`Tls>)kzfhwo0_Xoa8$ORTx)7-{K zQDHuvYa9~BGeD`$RyE*+5lK>Duw&;S4!Oe3o=VxWSAv2}uv|*ewx@6MH|-b7EK&5y zn!Fc_OT%G0s%gn93S$b!(h=&)YscS)b;BLKd72cqzmG55e^P!yDLQ9z=2CC}Pna!b zLHiQV?AV*FK;vHd$|5k~bM97x-VkD>-h8!?61x0_Qj9>wWmu1AIQj>kMIVH1L$vxT zOgr>CtOyN7e^;LP$fc5w-?1XSpXH8~CbgAGJ)D;#ky^aWB;XM#apt!=PyLn1{-E3Y zMQg$nMTN){{bnAAn#*=MN*$k_A6aVTP9*o0UlJdk7B6|!J;_Ga9Q*WC^A zwUmt$MS&tdsc9?1I@6JRBlQoRl3Pi}1cJ_-!6`lQpy_cyQcFM0T{j65ju~JK)%!^{kzT6iaY!@^|ZEtMqZ>*?R z_@U(zB}fqXr9!uL53;M08sV(*W9JG@hRGr98jO76p!Ly{AMYRQQ}}uP)u6Yo4MRQw zZ-v)>e?CTqbXMmQbmeWh5LrIg*(@~3qgerW(X6b&@bdq6M&SvyM~o1JSt){f SJ?ZpM01Wj^ZdAct?*9j%!s>$n diff --git a/app/src/main/assets/shared_images/vpn_key_blue_light.png b/app/src/main/assets/shared_images/vpn_key_blue_light.png deleted file mode 100644 index 1a01778de232585ab632cf5b4d7c3403deb8bd08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2154 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 diff --git a/app/src/main/assets/shared_images/vpn_key_light.png b/app/src/main/assets/shared_images/vpn_key_light.png deleted file mode 100644 index 28be5b70e2c01664622df784b77c4e0902d81c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1453 zcmaKseKgYx7{`CxnAcsYEs?vFDJZl3r0;GNa z8*UZSGqC)2SzlSj2v)40{nJ%)ncL@a-OSxp_I7rUxV?sk6+uY5(4X4KU+-^dtI?NZ zkNnA~6;_e7oLlJWPBGJ<+=L^Tv&=^DsqXt*_tFd`yfLTMw*81!Xz7@&e1R;7D&I1y zlol9OPV7yrc6#B?JHf3 zJmJK!4a^0s!wV`oE6l8;iVPFQBER%B0;n&-48XSO+0C3AE%J!75l=!ir@@9L=$sD5 z9#;$Z7@^V*aP-}WMUX#&#SltaM^h6~`*nMYK@>jyG=h1Ilk#;kU}7J~f&X$U!ovrh z7rCf^xH1$5zMWn+<~ZCK5q>-CB}Q6<^DIS_WpnHJJqy6yIXMYUA&okajsEYMD{aye zzy>xe5+*3R6AB}UUo8npCRA*O;jI=_I~smow%QN)D6_zHqG{fY0%N{EDye#zT2{a_Hq{i`IhI$qL268ZsKW5af^ zQ{mwKa3{LZ)t~wCoDe|@n~>V~xx}V`^u)>nGZu9TI5nXPH}Hezb=GZ<9O$CFcvO$iOXd(4TgT168mH%3?sqvKLK25y*LIfA! zkWOB*f(u!99{!NQo$faI0$|#0yNlIh%ekY$qqKVXWKfD8 z075bC)^zW~*BUY%L<2D3ZhjasX7;LT%3Jy|^JW7($sL%$bPfRA{`ps+FW5EWTpZ{C z1282C#uuN3hRBtKq5Wo?C6{GBiNN!zj)9L6dFpE7HVrhbUel644t%QIp8O#T_POZ7 zFsv1F7bNd3?>%`Gh?U`8fhdEhPW7$47-rU?OO!*qSZYbn2(Nq8kH9NY2gq<$H$I&S hn?jv8{Vw^%E1Oug-eu+xLfiUl1#n*eo^@D4_J2f%qRapQ diff --git a/app/src/main/assets/shared_images/vpn_lock.svg b/app/src/main/assets/shared_images/vpn_lock.svg new file mode 100644 index 00000000..1a41bc7a --- /dev/null +++ b/app/src/main/assets/shared_images/vpn_lock.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/vpn_lock_blue_dark.png b/app/src/main/assets/shared_images/vpn_lock_blue_dark.png deleted file mode 100644 index 134a19bfa0612bd5dc87b64c70b2c515ba8e6146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4405 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 diff --git a/app/src/main/assets/shared_images/vpn_lock_blue_light.png b/app/src/main/assets/shared_images/vpn_lock_blue_light.png deleted file mode 100644 index 60c5c166f1c62e02dcb0ddd8372766325addd4ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4351 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 diff --git a/app/src/main/assets/shared_images/vpn_lock_dark.png b/app/src/main/assets/shared_images/vpn_lock_dark.png deleted file mode 100644 index 32367357a28c63690a5a2566572c7a30211cbc7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3119 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 JPDHLkV1gKiu7Cgl diff --git a/app/src/main/assets/shared_images/vpn_lock_light.png b/app/src/main/assets/shared_images/vpn_lock_light.png deleted file mode 100644 index 5adb9cfc1528099be69b949df574f18dfba45a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2807 zcmVUqw+HF$^6v~ z*rEp94AjxD{IPN;(2=j|0aI$g10+}K9^i3cRYTS{K1+K3$GK`BFy=<$D{?c^tWSvf z&P3o-jc4M%dxLYW16DX480E;ys{=Qo)|7V;-*t=v@3XINz&0Bg|LeUvLpq;{NoSoU z9RrS7#P~}4p+S0g#iX~;P{)8ne#DWL^*S)cAib%;8<8~cHPkWShz{U2j;yR(ETsFr zNSfQxm=;#S72E^N0!~ESsQthU%U@qb!y%^~9tcy)fL00_E zjC?)`8E4pFQsnQ?1M?c`Z?=?&GiC#iV7@BmT68O`8@R{wd)0xv8@d#ZiNH6JX_@cJ zbzuPa6hP;uEZ5ZCIp-l$E#C#>$^cHGSS?x|I5|$yyf+f`0V{yV5a&%*xrkyp*=mSR zyy{y47uYg@4rIW0j-~X9$g{o`aDgoYxD~j>Qd&i17+B+52^ZKffF;Oj z)hhEKu-ms1E-*EKcOmD}isbjU%|2v1S|u?tfNtO?$Zp#z^95wba3wJ@fNvvPlB>*j zki#66C95N7E)vnAs_X-<0q*y#hjX&D05xQrQIYl&+F}@~^nTi)@*!I#UIBdAwj!4K z1L`MZ_8@)y7T}jubhMv@t^rI#=KMwH4&bN0l_&$cUBFk7#hyS#&@q6?$iOI2A#@Dj zI^@J{phBn`Kriq`mx=`ZplSeD6Z(D~Y@YnJMeOWG)c~%vs7O2Tv~LAs_*2#|&cpx7 z7G3eZ5p_DS3;*TNl%2p^;uKYB0hX!1cc8()fvb?%eZCn%blI8Z%Uwv&A>S5Uwickt zLL}~xuX5M|%uiFWl_zjM@OI_bEeg4B)LAX*?hK zdjL5l9E>0vy{HeCH<)IYWB`*j(ug}ZKL9KsbO%}3i~4ld_`ZQ81JFtMUkRUw?jSp= z!6=S4%_zwLbP`Uh;Ls9eL-ooUX9l3t0_<<`|6z8ZkLu|p<1Qe{6|8eLxyr7WW_Pd# zweiK5@aqjc2>ca)@%CH&sG2ytLOy!GU7F|&7*9u?nrX_Re>SOY!>{2=FiRr_}1gRC|TK(`+%n-PE*L2SHzN2r#mGXu~$*pMYeOxcVe zG2Xr-RLiswEkJA>dIid61XYT{kU&Db_*_wJwr_>khWO>d=fhDi)+q!Yas)r5BL4(6dA zg=I5h1V*G8z&ed|7Mm&(p=?t`Tj(6cTkA}V23@H8?dwS3Xxp5IY>x1~CU6LQ7d@vj zsG-lfHZn|W0Y-q|DW>DfQ`Synf?2?O6rUXdp0tr^D~E$lGjp+tA}O@XnBY>4XE%~l zMALrsn#t1~>T;E)E@kQhI)Rrobh*)1#;sa_ZNMgt^sYD1r4?0f0hXeE-|!*i1`{i& z_?%a2q<0DGCyD}x(fQ%5!@?Rs6BPqkje5wHZrrv4Rb&Brji}BP)DknU208uQn(%tJIM70UhPH1Mjeu{|QK6>$_rgWQfBj zcshZ{G{65p;N7MLXOokW0g28_Y(jRs+Tb?Lyo(?=80h|W3uR`VEHAPOJ9iBC0P8d4 z?^9j@KAYitTgh)XvKB`par|^&XgPL_U^?Y90-Zr$Qwklc`8=|{)a{n??*YC~`NjmQ za-XGga>}h_d$~I>zq-E3ETm=0(jpaAHe=U^;*4(K_hfs?hmn9twx}VqgtH8EDuV2$ zAaj0IW*}FjWO><*z}pZ*IZ7Kz@$;9=SNmWB|`lu{)V- z*fD}(WG& zR&)b+fc!(xd1Eoz{RC;U1qt7F0pr7}71aRhz<05;9#Sf1;MO}gid+`?C{n;rIm|1o zypEk2PHE`^ZYI00pv-1qtxD4m z{2Kq2WmEnMTuvJf^s-VzVhcQj|H?CwH-MYai=G~ca5i#ntnbRyksU~PX7$WoyR!&* zgkp~o27zlS$w;a diff --git a/app/src/main/assets/shared_images/warning.png b/app/src/main/assets/shared_images/warning.png deleted file mode 100644 index 99d0db5fe911c2d38136f5643ca246c1fbd8b406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6111 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. + + This file is part of Privacy Browser . + + It is derived from `security` and `language`, which are part of the Android Material icon set and are released under the Apache License 2.0. + + 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 . --> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/web.svg b/app/src/main/assets/shared_images/web.svg new file mode 100644 index 00000000..3e9f4f90 --- /dev/null +++ b/app/src/main/assets/shared_images/web.svg @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/shared_images/web_blue_dark.png b/app/src/main/assets/shared_images/web_blue_dark.png deleted file mode 100644 index fe3939e40d57e641b55d081467c5e4fe031ac13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lfAn;5 z45^s&_RjwN=unAcAD`d3J?(;Mu88B(lvG1u#8amJK{MhxacK>|CUC+O6 zd_Vd6@#k^TOh9KLfde|V?)T=KuAP(ZQliD2(jPrM*`L2{{=VpK9xoYuVk4^kD*sPb zunpeE_U-(V($+_7?>)VooqB9KmqYPCH}AChvr4v{so;sYu#Ky_c(d{5Id&$2j}Mjm zYu^9uw&hRY=jwS+^>bpZcFr@>@UELt^S;aC=i(O;`(MQS%1#k!P=B^=zuL>MSJ)3; zm@{|Q{*P{_8kR78S^7Ei^T7?RhbEm1{3G>XZ$7`7ylu(s*83-JpL~C}GADWCR_Wq` z5_XHaFALQzeY_kh(RW(#+))q)JqA2AE;P~Xt^g5eyH1F^o0Y3^cXi|~`a3%PzRu-tDI z?fF(P`TuU!l06|p4GMcr-s$&i#ghbg;*??H^|eV$2Sn-=tHW%WxL_kK;< zKFgnR+0l1R_t&@e3g2Uz!a(3>qJFlisI=8IP`D@dg?stdItkz7PWX~3Ltv>wH+be}D?&Mcbo9iz-MW*52 zQe*SfZ+%VMf{!m!a=dL+UA@{^cJGhh;VXL=oIQ7D)5;9bhs%u~8wS{)IMh9R?#!n~ z&ED@>zUj@6v)*KFn9C*axhr%VpV#Y?Umk8e{Bz~m)|c;3i%Fgl-M20E?A_P8oByOv zHr>47ID3%zcTJz|O-|+!KXz3=dD3-jVa0`F^bE)GgZ)F{!?|n99-jr}Lr+&fmvv4F FO#sPf1fKu^ diff --git a/app/src/main/assets/shared_images/web_blue_light.png b/app/src/main/assets/shared_images/web_blue_light.png deleted file mode 100644 index d3030befd14c01a136db2d29ab1d25179ce9d57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1097 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)lAMLfy zT)!&NMaV$MX13S#vupjzzkHpw+dgncpO=-<)O|bd9X#@NvFN|ZtG4@AzrFmm*KE&5 z2Ajxx*Y<9$aDBGEd$wIRdr|e~U)i7f^rqIE-3~k^Ue3q`t$JO zhC8PLy|!OLoM&(sQ>>3HdqU;81(&ohj{YMpVV z@}V_5KfMdAVvwu)KEYf1rt%@5oh3oD^Y6~9sx4v&>zBEs9rm~Q{1R)v|8{==GUmxN zbY6F#&C9v@+RPstuVhbVPFOcJ?eM`hzDwd>ZGD-|u>ECCe#6d5d-)rlIx#dUGaOvX zzM$Y5gLj9df(4U+3?oM$1Iux@fPym&2L&4*a5xmODC~H`uw%3Ej-I^C#Vcp~_3O{O zpSSq?o|o(R|NPp&_2Zv#Gq%~!Zp}*b@7&(-0ivOYVFOV83`UUo5L4!G^7J9wF!R6z zWNFE6hcc$=g2oO7Yh}1hudm+w^ekA?S+BO9GoBydFlMl(u}+M zu7Pt->Ym~|kS~7vy=t}RC5`Q3Yb8CuJ-XU|PF4TkzpEL_D}V_tW}Di}+iG8Dtjgb` zC%3Zg?_9N`z2!{D5C40*YR79v&-I?WE^XnL`h7Acef2zhi+@kODm@Z9;~{k~4nJ zsK@`+yv3s9teqhJ@BdlbSrX!ZZ_V%vYtzf& zJm4-XzUb$ViWi5bG4y=e+bHIJzLsIHJC8#l+X9R9hDUE0j!HH>f^gdppmXhJta#@y zSXj8|7PqSLXW4qWzkk!8^&e<8%x;ord;sy(Au(O#1 z<}i}LjXCYS@W0uby&ImK_sYAv=l*|tXYp+%4aY$NBT*C9tp5AV9abA=yEi+P&Yn@* zpsp0h6KS)9+2x2@!Pf7qOpL?ZRVXg|Pz!0mOMZyNKDeP2H;{OlIsa)&9b@we@7 z(^b_67MiDDTJzg4!Q~F)H|G6JulJT-dF%hcq(DLG-8V7Gr_%e*+&T8TuYe_j(N22t zx_g_>y`F7j-ng}+!t(j+iAd=bm}W02Rj}TjSEKctaj_FHH!*m+`njxgN@xNAODU8C diff --git a/app/src/main/assets/shared_images/web_light.png b/app/src/main/assets/shared_images/web_light.png deleted file mode 100644 index 5ffe93a1f1bccfba5a5464ffa1525bbab317a8d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ zsJsMW#sHP)KY)UgC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l9rAQ> z45^s&_KvMzNT9^AkNfX?^q9FYx6aB~yv9K&M`vv+yWW8pb}*%9P6D*9spSh!7@o)c=w|;)-p4wDCpUcRm;yDQ!l{}i8nK8fk0M`eB2$pr` zTh{m8X57}$e}L`7^81eu$b4YB!N#}NFZ=h4bbIrU)1r#xZ^#rote$;~Wt#e((8pm7 z@y2p@vetcTxVq8&+JfjCpV}kr8+RwaTWk2fs={J*+}i$q+tO^L4md|We*N*p?ce>I zRl6IPx4yo*cagQ$PnicyADDN9mB^Il%11Epz0%Qp$zcBRlYdhsSKGl!3_8>1yV^#s z+Py)AA$*xd$FIVz?+#63F!@@|%bHibEi9M5?K&hZJHV`wpEc*x^m(SD$y ztf2rblg@C+lBF$sHS?N4R<(t@s{U>LX#eTu4x8K%QG84pQ96+ah{z-!EA<`(Pw zm-d}+P}hCCmTjwO1H10q)onk4hAA4%kyVI^HU@^-)}?#fpSkew&Sia|`e7M}v*A7S znM2bX3iuiyz5%G+np0EtQ{=CGC)rtxhv+ReCt2Gh~K-uC@lB6 ze|~>>d7>x#53{3=SNd<2hZ@~H&%FD<(?^e2c>g}YR1lC}=*fPA{hoiZQt2yQQ+@eU z?FYg^L4ECg#@tu?6W2Vv+J5o+wK=yB_#Nj@^IaGF;M|Ms>}y(AqkH$s-&&RR{)L~_ zR-T%fA0J$M^Hp+(`NMTl#hev - + + + + diff --git a/app/src/main/assets/tr/about_changelog_light.html b/app/src/main/assets/tr/about_changelog_light.html deleted file mode 100644 index 7ce4ce18..00000000 --- a/app/src/main/assets/tr/about_changelog_light.html +++ /dev/null @@ -1,683 +0,0 @@ - - - - - - - - - - -

3.5.1 (version code 51)

-

28 August 2020 - minimum API 19, target API 29

-
    -
  • Fix a bug that caused new intents (links from other apps) to not load if Privacy Browser had been killed by the OS in the background.
  • -
  • Fix a bug that caused the app to initialize incorrectly if the app theme was set to the opposite of the OS theme.
  • -
- -

3.5 (version code 50)

-

18 August 2020 - minimum API 19, target API 29

- - -

3.4.1 (version code 49)

-

1 Nisan 2020 - minimum API 19, target API 29

- - -

3.4 (version code 48)

-

28 Mart 2020 - minimum API 19, target API 29

- - -

3.3 (version code 47)

-

3 Ocak 2020 - minimum API 19, target API 29

- - -

3.2 (version code 46)

-

20 July 2019 - minimum API 19, target API 28

- - -

3.1 (version code 45)

-

27 Mayıs 2019 - minimum API 19, target API 28

- - -

3.0.1 (version code 44)

-

2 Mayıs 2019 - minimum API 19, target API 28

- - -

3.0 (version code 43)

-

26 Nisan 2019 - minimum API 19, target API 28

-
    -
  • Sekmeli tarama eklendi.
  • -
  • Uygulama çubuğu kaydırma devredışı olduğunda Web Görünümü'nün alt kısmının kesilmesine sebep olan hata düzeltildi.
  • -
  • Ne zaman bir Bluetooth klavye bağlandığında/bağlantısı kesildiğinde Privacy Browser'i yeniden başlatmaya sebep olan hata düzeltildi.
  • -
  • Kısmi Türkçe çevirisi yapıldı.
  • -
  • Almanca çevirisi güncellendi. (Çevirmen Bernhard G. Keller.)
  • -
  • Ä°talyan çevirisi güncellendi. (Çevirmen Francesco Buratti.)
  • -
  • Rusça çevirisi güncellendi.
  • -
  • Ä°spanyol çevirisi güncellendi. (Çevirmen Jose A. León.)
  • -
- -

2.17.1 (version code 42)

-

5 Mart 2019 - minimum API 19, target API 28

- - -

2.17 (version code 41)

-

27 Şubat 2019 - minimum API 19, target API 28

- - -

2.16 (version code 40)

-

31 Ocak 2019 - minimum API 19, target API 28

- - -

2.15.1 (version code 39)

-

27 Aralık 2018 - minimum API 19, target API 28

- - -

2.15 (version code 38)

-

24 Aralık 2018 - minimum API 19, target API 28

- - -

2.14 (version code 37)

-

8 Aralık 2018 - minimum API 19, target API 28

- - -

2.13 (version code 36)

-

29 October 2018 - minimum API 19, target API 28

- - -

2.12 (version code 35)

-

31 July 2018 - minimum API 19, target API 27

- - -

2.11 (version code 34)

-

10 July 2018 - minimum API 19, target API 27

- - -

2.10 (version code 33)

-

24 Mayıs 2018 - minimum API 19, target API 27

- - -

2.9 (version code 32)

-

9 Mayıs 2018 - minimum API 19, target API 27

- - -

2.8.1 (version code 31)

-

1 Mart 2018 - minimum API 19, target API 27

- - -

2.8 (version code 30)

-

22 Şubat 2018 - minimum API 19, target API 27

- - -

2.7.2 (version code 29)

-

22 November 2017 - minimum API 19, target API 26

- - -

2.7.1 (version code 28)

-

9 November 2017 - minimum API 19, target API 26

- - -

2.7 (version code 27)

-

7 November 2017 - minimum API 19, target API 26

-
    -
  • Add a bookmarks drawer that is accessed by sliding from the right.
  • -
  • Prevent Night Mode from flashing a white background when loading new pages.
  • -
  • Update the user agents.
  • -
  • Bump target API to 26 (Android Oreo, 8.0.0).
  • -
  • Updated Italian translation provided by Francesco Buratti.
  • -
  • Updated Spanish translation provided by Jose A. León.
  • -
- -

2.6 (version code 26)

-

18 September 2017 - minimum API 19, target API 25

- - -

2.5 (version code 25)

-

26 August 2017 - minimum API 19, target API 25

- - -

2.4 (version code 24)

-

23 June 2017 - minimum API 19, target API 25

- - -

2.3 (version code 23)

-

26 Mayıs 2017 - minimum API 19, target API 25

- - -

2.2 (version code 22)

-

27 Nisan 2017 - minimum API 19, target API 25

- - -

2.1 (version code 21)

-

25 Mart 2017 - minimum API 19, target API 25

- - -

2.0.1 (version code 20)

-

21 Mart 2017 - minimum API 19, target API 25

- - -

2.0 (version code 19)

-

16 Mart 2017 - minimum API 19, target API 25

- - -

1.15 (version code 18)

-

11 Şubat 2017 - minimum API 19, target API 25

- - -

1.14.1 (version code 17)

-

4 Ocak 2017 - minimum API 19, target API 25

- - -

1.14 (version code 16)

-

26 Aralık 2016 - minimum API 19, target API 25

- - -

1.13 (version code 15)

-

28 November 2016 - minimum API 19, target API 24

- - -

1.12 (version code 14)

-

9 November 2016 - minimum API 19, target API 24

- - -

1.11 (version code 13)

-

22 October 2016 - minimum API 19, target API 24

- - -

1.10 (version code 12)

-

15 September 2016 - minimum API 19, target API 23

- - -

1.9.1 (version code 11)

-

27 August 2016 - minimum API 19, target API 23

-
    -
  • Changed asset image links to relative paths so Privacy Browser will build on F-Droid.
  • -
- -

1.9 (version code 10)

-

26 August 2016 - minimum API 19, target API 23

- - -

1.8 (version code 9)

-

16 July 2016 - minimum API 19, target API 23

- - -

1.7 (version code 8)

-

16 June 2016 - minimum API 19, target API 23

- - -

1.6 (version code 7)

-

11 Mayıs 2016 - minimum API 15, target API 23

- - -

1.5 (version code 6)

-

5 Mayıs 2016 - minimum API 15, target API 23

-
    -
  • Add the option to disable swipe to refresh so that certain websites, like Google Maps, will function correctly.
  • -
- -

1.4 (version code 5)

-

28 Nisan 2016 - minimum API 15, target API 23

- - -

1.3 (version code 4)

-

7 Nisan 2016 - minimum API 15, target API 23

- - -

1.2 (version code 3)

-

23 Mart 2016 - minimum API 15, target API 23

- - -

1.1 (version code 2)

-

9 Mart 2016 - minimum API 10, target API 23

-
    -
  • Separate the standard and the free flavors so that Privacy Browser builds correctly on F-Droid.
  • -
- -

1.0 (version code 1)

-

24 Şubat 2016 - minimum API 10, target API 23

-
    -
  • Toggle JavaScript, DOM storage, and cookies.
  • -
  • Set default enabled status for JavaScript, DOM storage, and cookies.
  • -
  • Clear DOM storage and cookies.
  • -
  • Add shortcuts to the home screen.
  • -
  • Utilize download manager.
  • -
  • Navigate forward and back.
  • -
  • Cut, copy, paste URLs.
  • -
  • Share URLs.
  • -
  • Set homepage.
  • -
  • Scroll URL bar.
  • -
  • Maintain WebView scroll location when rotating screen.
  • -
  • Swipe to refresh WebView.
  • -
  • Play full screen videos (requires JavaScript to be enabled).
  • -
  • Clear and Exit menu item.
  • -
- - \ No newline at end of file diff --git a/app/src/main/assets/tr/about_contributors_dark.html b/app/src/main/assets/tr/about_contributors.html similarity index 89% rename from app/src/main/assets/tr/about_contributors_dark.html rename to app/src/main/assets/tr/about_contributors.html index 8ffb882b..11ac1920 100644 --- a/app/src/main/assets/tr/about_contributors_dark.html +++ b/app/src/main/assets/tr/about_contributors.html @@ -20,7 +20,10 @@ - + + + + diff --git a/app/src/main/assets/tr/about_contributors_light.html b/app/src/main/assets/tr/about_contributors_light.html deleted file mode 100644 index 44ce32a8..00000000 --- a/app/src/main/assets/tr/about_contributors_light.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - -

Baş Geliştirici

-

Privacy Browser, ağırlıklı olmak üzere Soren Stoutner tarafından geliştirilmiştir.

- -

Kodlayıcılar

- Thomas Jensen
- Hendrik Knackstedt - -

Çevirmenler

- Thiago Nazareno Conceição Silva de Jesus: Brazilian Portuguese
- Kévin LE FLOHIC: French
- Bernhard G. Keller: Almanca
- Francesco Buratti: Ä°talyanca
- Jose A. León: İspanyolca - -

Önceki Çevirmenler

- Stefan Erhardt: Almanca
- Aaron Gerlach: Almanca - -
-
-

Katkıda bulunmak isteyenler hem kod hem de çeviri gönderebilir.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/about_licenses_light.html b/app/src/main/assets/tr/about_licenses.html similarity index 89% rename from app/src/main/assets/tr/about_licenses_light.html rename to app/src/main/assets/tr/about_licenses.html index 5878e2dd..6161994c 100644 --- a/app/src/main/assets/tr/about_licenses_light.html +++ b/app/src/main/assets/tr/about_licenses.html @@ -20,7 +20,10 @@ - + + + + @@ -60,99 +63,99 @@ Değiştirilen dosya GPLv3+ lisansı altında yayınlandı.

Simgeler

-

- Apache License 2.0 altında yayınlanan ve +

+ Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan security ve language'den elde edilmiştir. Lisansın tüm metni aşağıdadır. Değişikliklerin telif hakkı © 2016 Soren Stoutner. Ortaya çıkan görüntüler GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan folder ve exit_to_app elementlerinden elde edilmiştir. Değişikliklerin telif hakkı © 2017 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan bookmarks ve create_new_folder elementlerinden elde edilmiştir. Değişikliklerin telif hakkı © 2017 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan create_new_folder'dan elde edilmiştir. Değişikliklerin telif hakkı © 2017 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan exit_to_app'ten elde edilmiştir. Değişikliklerin telif hakkı © 2017 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan compare'den elde edilmiştir. Değişikliklerin telif hakkı © 2017 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve +

Apache License 2.0 altında yayınlanan ve Android Material simge setinin bir parçası olan sort'dan elde edilmiştir. Değişikliklerin telif hakkı © 2019 Soren Stoutner. Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

cookie Google tarafından oluşturuldu. +

cookie Google tarafından oluşturuldu. Apache License 2.0 altında yayınlandı ve Material Design simgelerinden indirilebilir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır.

Aşağıdaki simgeler Apache License 2.0 altında yayınlanan Android Material simge setinden gelmektedir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır. Bazıları koddaki kullanımlarıyla uygun olacak şekilde yeniden adlandırıldı. Orijinal simgeler ve adlar aşağıda gösterilmiştir.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

+

add.

+

arrow_back.

+

arrow_forward.

+

bookmarks.

+

bug_report.

+

camera_enhance.

+

chrome_reader_mode.

+

close.

+

delete.

+

delete_forever.

+

devices_other.

+

dns.

+

donut_small.

+

edit.

+

expand_less.

+

expand_more.

+

file_copy.

+

file_download.

+

find_in_page.

+

folder.

+

home.

+

image.

+

import_contacts.

+

import_export.

+

important_devices.

+

info_outline.

+

language.

+

link_off.

+

list.

+

local_activity.

+

location_off.

+

lock.

+

map.

+

more.

+

new releases.

+

open_in_browser.

+

payment.

+

question_answer.

+

refresh.

+

save.

+

search.

+

select_all.

+

settings.

+

settings_overscan.

+

share.

+

smartphone.

+

sort.

+

style.

+

subtitles.

+

tab.

+

text_fields.

+

thumbs_up_down.

+

vertical_align_bottom.

+

vertical_align_top.

+

visibility_off.

+

vpn_key.

+

vpn_lock.

+

web.


diff --git a/app/src/main/assets/tr/about_licenses_dark.html b/app/src/main/assets/tr/about_licenses_dark.html deleted file mode 100644 index 9d16f4dd..00000000 --- a/app/src/main/assets/tr/about_licenses_dark.html +++ /dev/null @@ -1,1066 +0,0 @@ - - - - - - - - - - -

Telif Hakkı

-

Privacy Browser telif hakkı © 2015-2020 Soren Stoutner.

- -

Lisans

-

Privacy Browser GPLv3+ lisansı altında yayınlandı. Lisansın tam metni aşağıdadır. - Kaynak kodu git.stoutner.com adresinden temin edilebilir.

- -

Engel Listeleri

-

EasyList ve EasyPrivacy listeleri - GPLv3+ ve Creative Commons Attribution-ShareAlike 3.0+ Unported - lisansları altında çift lisanslıdır. - Privacy Browser GPLv3+ seçeneğini kullanarak bunları kapsama almıştır.

- -

Fanboy’s Annoyance List ve Fanboy’s Social Blocking List listeleri - GPLv3+ ile uyumlu olan - Creative Commons Attribution 3.0 Unported license lisansı altında yayınlandı. Listeler Privacy Browser'a değiştirilmeden eklenmiştir.

- -

Engel listeleri hakkında daha fazla bilgiyi EasyList adresinde bulabilirsiniz.

- -

Kütüphaneler

-

Privacy Browser is built with the AndroidX Libraries, - the Kotlin libraries, - and code from the Google Material Maven repository, - which are released under the Apache License 2.0.

- -

Privacy Browser ücretsiz versiyonu Android Software Development Kit lisansı altında yayınlanan - Firebase Ads ile oluşturulmuştur.

- -

Sınıflar

-

com.stoutner.privacybrowser.views.CheckedLinearLayout is a modified version of a class contained in the - Android Kamera - kaynak kodunda bulunan bir sınıfın modifiye edilmiş bir sürümüdür. - Orijinal dosya Apache License 2.0 altında yayınlandı. - Değiştirilen dosya GPLv3+ lisansı altında yayınlandı.

- -

Simgeler

-

- Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan security ve language'den elde edilmiştir. - Lisansın tüm metni aşağıdadır. Değişikliklerin telif hakkı © 2016 Soren Stoutner. - Ortaya çıkan görüntüler GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan folder ve exit_to_app elementlerinden elde edilmiştir. - Değişikliklerin telif hakkı © 2017 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan bookmarks ve create_new_folder elementlerinden elde edilmiştir. - Değişikliklerin telif hakkı © 2017 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan create_new_folder'dan elde edilmiştir. - Değişikliklerin telif hakkı © 2017 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan exit_to_app'ten elde edilmiştir. - Değişikliklerin telif hakkı © 2017 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan compare'den elde edilmiştir. - Değişikliklerin telif hakkı © 2017 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

Apache License 2.0 altında yayınlanan ve - Android Material simge setinin bir parçası olan sort'dan elde edilmiştir. - Değişikliklerin telif hakkı © 2019 Soren Stoutner. - Ortaya çıkan görüntü GPLv3+ lisansı altında yayınlandı.

-

cookie Google tarafından oluşturuldu. - Apache License 2.0 altında yayınlandı ve Material Design - simgelerinden indirilebilir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır.

-

Aşağıdaki simgeler Apache License 2.0 altında yayınlanan Android Material - simge setinden gelmektedir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır. Bazıları koddaki kullanımlarıyla uygun olacak şekilde yeniden adlandırıldı. - Orijinal simgeler ve adlar aşağıda gösterilmiştir.

-

add.

-

arrow_back.

-

arrow_forward.

-

bookmarks.

-

bug_report.

-

camera_enhance.

-

chrome_reader_mode.

-

close.

-

delete.

-

delete_forever.

-

devices_other.

-

dns.

-

donut_small.

-

edit.

-

expand_less.

-

expand_more.

-

file_copy.

-

file_download.

-

find_in_page.

-

folder.

-

home.

-

image.

-

import_contacts.

-

import_export.

-

important_devices.

-

info_outline.

-

language.

-

link_off.

-

list.

-

local_activity.

-

location_off.

-

lock.

-

map.

-

more.

-

new releases.

-

open_in_browser.

-

payment.

-

question_answer.

-

refresh.

-

save.

-

search.

-

select_all.

-

settings.

-

settings_overscan.

-

share.

-

smartphone.

-

sort.

-

style.

-

subtitles.

-

tab.

-

text_fields.

-

thumbs_up_down.

-

vertical_align_bottom.

-

vertical_align_top.

-

visibility_off.

-

vpn_key.

-

vpn_lock.

-

web.

- -
- -

GNU General Public License

-

Version 3, 29 June 2007

- -

Copyright © 2007 Free Software Foundation, Inc. - <http://fsf.org/>

- -

Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for - software and other kinds of works.

- -

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 - 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 - your programs, too.

- -

When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others.

- -

For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: - (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 - 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 - 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 - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users.

- -

Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and - modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

“This License” refers to version 3 of the GNU General Public License.

- -

“Copyright” also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks.

- -

“The Program” refers to any copyrightable work licensed under this - License. Each licensee is addressed as “you”. “Licensees” and - “recipients” may be individuals or organizations.

- -

To “modify” a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a “modified version” of the - earlier work or a work “based on” the earlier work.

- -

A “covered work” means either the unmodified Program or a work based - on the Program.

- -

To “propagate” a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well.

- -

To “convey” a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying.

- -

An interactive user interface displays “Appropriate Legal Notices” - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The “source code” for a work means the preferred form of the work - for making modifications to it. “Object code” means any non-source - form of a work.

- -

A “Standard Interface” means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language.

- -

The “System Libraries” of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - “Major Component”, in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it.

- -

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 - 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 - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source.

- -

The Corresponding Source for a work in source code form is that - same work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary.

- -

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures.

- -

When you convey a covered work, you waive any legal power to forbid - 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 - technological measures.

- -

4. Conveying Verbatim Copies.

- -

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 - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions:

- -
    -
  • a) The work must carry prominent notices stating that you modified - it, and giving a relevant date.
  • - -
  • b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - “keep intact all notices”.
  • - -
  • c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it.
  • - -
  • d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so.
  • -
- -

A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - 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 - 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.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways:

- -
    -
  • a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange.
  • - -
  • b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge.
  • - -
  • c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b.
  • - -
  • d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements.
  • - -
  • e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d.
  • -
- -

A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work.

- -

A “User Product” is either (1) a “consumer product”, which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, “normally used” refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product.

- -

“Installation Information” for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made.

- -

If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM).

- -

The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network.

- -

Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying.

- -

7. Additional Terms.

- -

“Additional permissions” are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms:

- -
    -
  • a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or
  • - -
  • b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or
  • - -
  • c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or
  • - -
  • d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or
  • - -
  • e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or
  • - -
  • f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors.
  • -
- -

All other non-permissive additional terms are considered “further - restrictions” within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11).

- -

However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice.

- -

Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License.

- -

An “entity transaction” is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - 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 - 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.

- -

You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

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”.

- -

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, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, “control” includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free - 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.

- -

In the following three paragraphs, a “patent license” is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To “grant” such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - 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 - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it.

- -

A patent license is “discriminatory” if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others’ Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns.

- -

Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License “or any later version” applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - 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 - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program.

- -

Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the “copyright” line and a pointer to where the full notice is found.

- -
<one line to give the program’s name
-and a brief idea of what it does.>
-Copyright (C) <year>  <name of author>
-
-This program 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.
-
-This program 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
-this program.  If not, see
-<http://www.gnu.org/licenses/>.
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode:

- -
<program>  Copyright (C) <year>
-<name of author>
-This program comes with ABSOLUTELY NO
-WARRANTY; for details type `show w'.
-This is free software, and you are
-welcome to redistribute it under
-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 - 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, - if any, to sign a “copyright disclaimer” for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - <http://www.gnu.org/licenses/>.

- -

The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - <http://www.gnu.org/philosophy/why-not-lgpl.html>.

- -
- -

Apache License

-

Version 2.0, January 2004

-

http://www.apache.org/licenses/

- -

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

- -

1. Definitions.

- -

“License” shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document.

- -

“Licensor” shall mean the copyright owner or entity authorized by the - copyright owner that is granting the License.

- -

“Legal Entity” shall mean the union of the acting entity and all other - entities that control, are controlled by, or are under common control with - that entity. For the purposes of this definition, “control” means (i) the - power, direct or indirect, to cause the direction or management of such - entity, whether by contract or otherwise, or (ii) ownership of fifty - percent (50%) or more of the outstanding shares, or (iii) beneficial - ownership of such entity.

- -

“You” (or “Your”) shall mean an individual or Legal Entity exercising - permissions granted by this License.

- -

“Source” form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation source, - and configuration files.

- -

“Object” form shall mean any form resulting from mechanical transformation - or translation of a Source form, including but not limited to compiled - object code, generated documentation, and conversions to other media types.

- -

“Work” shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that - is included in or attached to the work (an example is provided in the - Appendix below).

- -

“Derivative Works” shall mean any work, whether in Source or Object form, - that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as - a whole, an original work of authorship. For the purposes of this License, - Derivative Works shall not include works that remain separable from, or - merely link (or bind by name) to the interfaces of, the Work and Derivative - Works thereof.

- -

“Contribution” shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the - purposes of this definition, “submitted” means any form of electronic, - verbal, or written communication sent to the Licensor or its - representatives, including but not limited to communication on electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, the Licensor for the purpose of discussing - and improving the Work, but excluding communication that is conspicuously - marked or otherwise designated in writing by the copyright owner as “Not a - Contribution.”

- -

“Contributor” shall mean Licensor and any individual or Legal Entity on - behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work.

- -

2. Grant of Copyright License.

- -

Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable copyright license to reproduce, prepare Derivative Works of, publicly - display, publicly perform, sublicense, and distribute the Work and such - Derivative Works in Source or Object form.

- -

3. Grant of Patent License.

- -

Subject to the terms and conditions of this License, each Contributor hereby grants - to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, use, - offer to sell, sell, import, and otherwise transfer the Work, where such - license applies only to those patent claims licensable by such Contributor - that are necessarily infringed by their Contribution(s) alone or by - combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against - any entity (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate as of the - date such litigation is filed.

- -

4. Redistribution.

- -

You may reproduce and distribute copies of the Work or Derivative Works thereof - in any medium, with or without modifications, and in Source or Object form, provided - that You meet the following conditions:

- -
    -
  1. You must give any other recipients of the Work or Derivative Works a - copy of this License; and
  2. - -
  3. You must cause any modified files to carry prominent notices stating - that You changed the files; and
  4. - -
  5. You must retain, in the Source form of any Derivative Works that You - distribute, all copyright, patent, trademark, and attribution notices from - the Source form of the Work, excluding those notices that do not pertain to - any part of the Derivative Works; and
  6. - -
  7. If the Work includes a “NOTICE” text file as part of its distribution, - then any Derivative Works that You distribute must include a readable copy - of the attribution notices contained within such NOTICE file, excluding - those notices that do not pertain to any part of the Derivative Works, in - at least one of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or documentation, - if provided along with the Derivative Works; or, within a display generated - by the Derivative Works, if and wherever such third-party notices normally - appear. The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to - the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. -
    -
    - You may add Your own copyright statement to Your modifications and may - provide additional or different license terms and conditions for use, - reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and - distribution of the Work otherwise complies with the conditions stated in - this License.
  8. -
- -

5. Submission of Contributions.

- -

Unless You explicitly state otherwise, any Contribution intentionally submitted for - inclusion in the Work by You to the Licensor shall be under the terms and - conditions of this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify the - terms of any separate license agreement you may have executed with Licensor - regarding such Contributions.

- -

6. Trademarks.

- -

This License does not grant permission to use the trade names, trademarks, service marks, - or product names of the Licensor, except as required for reasonable and customary use - in describing the origin of the Work and reproducing the content of the - NOTICE file.

- -

7. Disclaimer of Warranty.

- -

Unless required by applicable law or agreed to in writing, Licensor provides the Work - (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, - without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You - are solely responsible for determining the appropriateness of using or - redistributing the Work and assume any risks associated with Your exercise - of permissions under this License.

- -

8. Limitation of Liability.

- -

In no event and under no legal theory, whether in tort (including negligence), contract, - or otherwise, unless required by applicable law (such as deliberate and - grossly negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a result - of this License or out of the use or inability to use the Work (including - but not limited to damages for loss of goodwill, work stoppage, computer - failure or malfunction, or any and all other commercial damages or losses), - even if such Contributor has been advised of the possibility of such - damages.

- -

9. Accepting Warranty or Additional Liability.

- -

While redistributing the Work or Derivative Works thereof, You may choose - to offer, and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this License. - However, in accepting such obligations, You may act only on Your own behalf - and on Your sole responsibility, not on behalf of any other Contributor, - and only if You agree to indemnify, defend, and hold each Contributor - harmless for any liability incurred by, or claims asserted against, such - Contributor by reason of your accepting any such warranty or additional - liability.

- -

END OF TERMS AND CONDITIONS

- -

APPENDIX: How to apply the Apache License to your work

- -

To apply the Apache License to your work, attach the following boilerplate - notice, with the fields enclosed by brackets “[]” replaced with your own - identifying information. (Don’t include the brackets!) The text should be - enclosed in the appropriate comment syntax for the file format. We also - recommend that a file or class name and description of purpose be included - on the same “printed page” as the copyright notice for easier - identification within third-party archives.

-
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License,
-Version 2.0 (the “License”);
-you may not use this file except
-in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law
-or agreed to in writing, software
-distributed under the License is
-distributed on an “AS IS” BASIS,
-WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied.
-See the License for the specific
-language governing permissions and
-limitations under the License.
\ No newline at end of file diff --git a/app/src/main/assets/tr/about_links_light.html b/app/src/main/assets/tr/about_links.html similarity index 69% rename from app/src/main/assets/tr/about_links_light.html rename to app/src/main/assets/tr/about_links.html index 19530424..12f344f1 100644 --- a/app/src/main/assets/tr/about_links_light.html +++ b/app/src/main/assets/tr/about_links.html @@ -1,5 +1,5 @@ +

Web Sayfaları

-

+

Haber

-

+

Yol Haritası

-

+

Hata İzleyici ve Özellik İstekleri

-

+

Forum

-

+

GitWeb

\ No newline at end of file diff --git a/app/src/main/assets/tr/about_links_dark.html b/app/src/main/assets/tr/about_links_dark.html deleted file mode 100644 index d4596c09..00000000 --- a/app/src/main/assets/tr/about_links_dark.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - -

Web Sayfaları

- -

- Haber

- -

- Yol Haritası

- -

- Hata İzleyici ve Özellik İstekleri

- -

- Forum

- -

- GitWeb

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/about_permissions_dark.html b/app/src/main/assets/tr/about_permissions.html similarity index 89% rename from app/src/main/assets/tr/about_permissions_dark.html rename to app/src/main/assets/tr/about_permissions.html index 4fc2e3dd..d59b080b 100644 --- a/app/src/main/assets/tr/about_permissions_dark.html +++ b/app/src/main/assets/tr/about_permissions.html @@ -1,5 +1,5 @@ + diff --git a/app/src/main/assets/tr/about_permissions_light.html b/app/src/main/assets/tr/about_permissions_light.html deleted file mode 100644 index 6c0ea98d..00000000 --- a/app/src/main/assets/tr/about_permissions_light.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -

Tam ağ erişimine sahip olma

-

android.permission.INTERNET

-

WebView’ın internete erişimi için gereklidir. Bu izin olmadan, Privacy Browser, “İnternet Olmadan Gizliliğinizi Koruyan Bir Tarayıcı” olacaktır.

- -

Kısayolları yükleme

-

com.android.launcher.permission.INSTALL_SHORTCUT

-

Başlatıcı masaüstüne web sayfalarının kısayollarını eklemek için gereklidir.

- -

Depolama okuma

-

android.permission.READ_EXTERNAL_STORAGE

-

Ayarları ortak klasörden içe aktarmak için gereklidir. - Android Marshmallow (API 23) versiyonunda ve daha yeni versiyonlarda bu izin verilmediğinde, Privacy Browser, uygulama klasörlerinden ayarları içe aktarır.

- -

Depolama yazma

-

android.permission.WRITE_EXTERNAL_STORAGE

-

Ayarları ve indirilen dosyaları ortak klasörlere aktarmak için gereklidir. - Android Marshmallow (API 23) versiyonunda ve daha yeni versiyonlarda bu izin verilmediğinde, Privacy Browser, - indirilenleri uygulama klasörlerine depolar ve ayarları uygulama klasörlerine aktarır.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/about_privacy_policy_dark.html b/app/src/main/assets/tr/about_privacy_policy.html similarity index 92% rename from app/src/main/assets/tr/about_privacy_policy_dark.html rename to app/src/main/assets/tr/about_privacy_policy.html index ac692619..7b992353 100644 --- a/app/src/main/assets/tr/about_privacy_policy_dark.html +++ b/app/src/main/assets/tr/about_privacy_policy.html @@ -1,5 +1,5 @@ + @@ -85,6 +88,6 @@ Stoutner asla bu bilgileri, reklam ve pazarlama için kullanacak üçüncü kişilere vermez ya da satmaz.


-

Revizyon 1.6, 22 Mayıs 2018

+

Revizyon 1.7, 14 Mayıs 2019

\ No newline at end of file diff --git a/app/src/main/assets/tr/about_privacy_policy_light.html b/app/src/main/assets/tr/about_privacy_policy_light.html deleted file mode 100644 index bf43145e..00000000 --- a/app/src/main/assets/tr/about_privacy_policy_light.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - -

Privacy Browser

-

Privacy Browser herhangi bir kullanıcı bilgisi toplamaz.

- - -

Google Play

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, aşağıdaki kategorilerce düzenlenen, indirme sayıları da dahil, anonimleştirilmiş özet kurulum bilgilerini geliştiricilere verir.

-
    -
  • Android versiyonu (örn. Android 7.1)
  • -
  • Cihaz (örn. Samsung Galaxy S6 [zeroflte])
  • -
  • Tabletler (örn. Tablets 10" ve üzeri)
  • -
  • Ülke (örn. Amerika Birleşik Devletleri)
  • -
  • Dil (örn. Ä°ngilizce [Amerika Birleşik Devletleri])
  • -
  • Uygulama versiyonu (örn. 14)
  • -
  • Telefon operatörü (örn. T-Mobile - US)
  • -
- - -

Google Play Derecelendirmeleri

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, kullanıcı değerlendirmeleriyle ilişkili aşağıdaki bilgilerin anonimleştirilmiş özetlerini geliştiricilere verir.

-
    -
  • Ülke (örn. Amerika Birleşik Devletleri)
  • -
  • Dil (örn. Ä°ngilizce)
  • -
  • Uygulama versiyonu (örn. 14)
  • -
  • Android versiyonu (örn. Android 7.1)
  • -
  • Cihaz (örn. Google Nexus 5X [bullhead])
  • -
  • Tabletler (örn. Tablets 10" ve üzeri)
  • -
- - -

Google Play Kritikleri

-

Google Play kendisine özgü gizlilik politikasına sahiptir. - Google, inceleme yapan kişinin ismine, değerlendirmeye ve inceleme metninine (tümü halka açıktır) ek olarak, aşağıdaki bilgilerin bir kısmını ya da tamamını geliştiricilere verir.

-
    -
  • Versiyon kodu (örn. 7)
  • -
  • Versiyon adı (örn. 1.6)
  • -
  • Android versiyonu (örn. Android 5.1)
  • -
  • Cihaz (örn. Galaxy S6 Edge+ [zenlte])
  • -
  • Üretici (örn. Samsung)
  • -
  • Cihaz tipi (örn. Telefon)
  • -
  • CPU markası (örn. Samsung)
  • -
  • CPU modeli (örn. Exynos 7420)
  • -
  • Piksel yoğunluğu (örn. 560 dpi)
  • -
  • Ekran boyutu (örn. 2560 x 1440)
  • -
  • RAM (örn. 4096 MB)
  • -
  • Native platformu (örn. armeabi-v7a,armeabi,arm64v8a)
  • -
  • OpenGL ES versiyonu (örn. 3.1)
  • -
  • Cihaz dili (örn. Ä°ngilizce)
  • -
- - -

Doğrudan İletişim

-

Kullanıcılar, stoutner.com üzerinden Stoutner ile doğrudan iletişime (E-posta atmak ya da yorum yapmak gibi) geçebilir.

- - -

Bilgilerin Kullanımı

-

Stoutner bu bilgileri, Privacy Browser'ın geliştirilmesine yardımcı olması ve kullanıcılarla projenin durumuyla ilgili iletişime geçmek için kullanabilir. - Stoutner asla bu bilgileri, reklam ve pazarlama için kullanacak üçüncü kişilere vermez ya da satmaz.

- -
-

Revizyon 1.6, 22 Mayıs 2018

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_domain_settings_dark.html b/app/src/main/assets/tr/guide_domain_settings.html similarity index 71% rename from app/src/main/assets/tr/guide_domain_settings_dark.html rename to app/src/main/assets/tr/guide_domain_settings.html index 103dacf2..1b9e24ae 100644 --- a/app/src/main/assets/tr/guide_domain_settings_dark.html +++ b/app/src/main/assets/tr/guide_domain_settings.html @@ -1,5 +1,5 @@ + -

Güvenli Web Taraması

+

Güvenli Web Taraması

Privacy Browser, JavaScript'i, çerezleri ve DOM depolamayı varsayılan olarak devre dışı bırakır. Ancak, bazı web sayfalarının düzgün çalışması için bu özelliklerin etkin olması gerekebilir. Özel bir domain ziyaret edilirken, belirli bir özellik kümesi domain ayarlarından otomatik olarak aktif edilebilir.

-

+

Ayarları özelleştirilmiş bir domain ziyaret edilirken, URL metin kutusunun arka planı yeşil olur.

-

+ \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_domain_settings_light.html b/app/src/main/assets/tr/guide_domain_settings_light.html deleted file mode 100644 index 771771c4..00000000 --- a/app/src/main/assets/tr/guide_domain_settings_light.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - -

Güvenli Web Taraması

- -

Privacy Browser, JavaScript'i, çerezleri ve DOM depolamayı varsayılan olarak devre dışı bırakır. - Ancak, bazı web sayfalarının düzgün çalışması için bu özelliklerin etkin olması gerekebilir. - Özel bir domain ziyaret edilirken, belirli bir özellik kümesi domain ayarlarından otomatik olarak aktif edilebilir.

- -

- -

Ayarları özelleştirilmiş bir domain ziyaret edilirken, URL metin kutusunun arka planı yeşil olur.

- -

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_javascript_dark.html b/app/src/main/assets/tr/guide_javascript.html similarity index 82% rename from app/src/main/assets/tr/guide_javascript_dark.html rename to app/src/main/assets/tr/guide_javascript.html index 3fad8db9..510fbfe2 100644 --- a/app/src/main/assets/tr/guide_javascript_dark.html +++ b/app/src/main/assets/tr/guide_javascript.html @@ -1,5 +1,5 @@ + -

JavaScript Güçlüdür

+

JavaScript Güçlüdür

İnternetin ilk günlerinde, web sayfaları statikti, bu, ekranda görüntülenen metinleri ve görüntüleri içerdikleri, ancak kullanıcılarla etkileşime giremedikleri anlamına geliyor. Tabii ki, statik içeriklerin birçoğu ilginç olabilir. Dinamik web sayfalarını kolaylaştırmak için çeşitli teknolojiler geliştirilmiştir. @@ -34,20 +37,20 @@ Cihaz, yerel işlemcisinde JavaScript’i çalıştırıp web sitesindeki görüntüleri oynatabilen, bir menü açabilen ve daha birçok yararlı şey yapabilen programın komutlarını yürütür.

-

JavaScript Tehlikelidir

+

JavaScript Tehlikelidir

Tabii ki, bir web sayfasının gelişigüzel programları çalıştırma konsepti potansiyel olarak tehlikelidir. Bu sebeple, virüs yüklemek gibi şeyler yapmaması için JavaScript üzerinde bazı sınırlamalar vardır. Ancak, bu sınırlamaların aşırı derecede geniş olduğu ortaya çıktı. Aşağıda, JavaScript’in bir cihaz hakkında üretebileceği bilgi türünü gösteren bir web sitesi olan webkay’in ekran görüntüsü verilmiştir. Browser Leaks de başka iyi bir kaynaktır.

-

+

Gizlilik amacı sebebiyle, internette gezinmek için JavaScript’i devre dışı bırakmak ideal olacaktır. Ancak, amaçlarını yerini getirmesi için JavaScript’e ihtiyaç duyan ve o şekilde programlanabildikleri halde JavaScript olmadan düzgün çalışmayan bazı web siteleri vardır. Privacy Browser, JavaScript’i açıp kapatmayı kolaylaştırarak bu sorunu çözme yoluna gider. - Gizlilik kalkanına dokunmak, onu mavi veya sarı - (ikisi de JavaScript’in devre dışı olduğunu gösterir) ve kırmızı (JavaScript'in etkin olduğunu gösterir) olarak değiştirecektir. + Gizlilik kalkanına dokunmak, onu mavi veya sarı + (ikisi de JavaScript’in devre dışı olduğunu gösterir) ve kırmızı (JavaScript'in etkin olduğunu gösterir) olarak değiştirecektir. JavaScript etkinken ve devre dışıyken, webkay’in topladığı farklı bilgilere bakmak bilgilendiricidir.

İnternette JavaScript devre dışı bırakılmış olarak gezinmek ve yalnızca gerektiğinde etkin hale getirmek, gizliliği koruma adına çok yararlı olacaktır. diff --git a/app/src/main/assets/tr/guide_javascript_light.html b/app/src/main/assets/tr/guide_javascript_light.html deleted file mode 100644 index 27ab1bf7..00000000 --- a/app/src/main/assets/tr/guide_javascript_light.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - -

JavaScript Güçlüdür

- -

İnternetin ilk günlerinde, web sayfaları statikti, bu, ekranda görüntülenen metinleri ve görüntüleri içerdikleri, ancak kullanıcılarla etkileşime giremedikleri anlamına geliyor. - Tabii ki, statik içeriklerin birçoğu ilginç olabilir. Dinamik web sayfalarını kolaylaştırmak için çeşitli teknolojiler geliştirilmiştir. - JavaScript bu teknolojilerden biridir.

- -

JavaScript bir programlama dilidir. Çoğu web sunucusu, web sayfasının bir parçası olarak cihazlara gönderilen JavaScript ile yazılmış programları içerir. - Cihaz, yerel işlemcisinde JavaScript’i çalıştırıp web sitesindeki görüntüleri oynatabilen, bir menü açabilen ve daha birçok yararlı şey yapabilen programın komutlarını yürütür.

- - -

JavaScript Tehlikelidir

- -

Tabii ki, bir web sayfasının gelişigüzel programları çalıştırma konsepti potansiyel olarak tehlikelidir. - Bu sebeple, virüs yüklemek gibi şeyler yapmaması için JavaScript üzerinde bazı sınırlamalar vardır. Ancak, bu sınırlamaların aşırı derecede geniş olduğu ortaya çıktı. - Aşağıda, JavaScript’in bir cihaz hakkında üretebileceği bilgi türünü gösteren bir web sitesi olan webkay’in ekran görüntüsü verilmiştir. - Browser Leaks de başka iyi bir kaynaktır.

- -

- -

Gizlilik amacı sebebiyle, internette gezinmek için JavaScript’i devre dışı bırakmak ideal olacaktır. - Ancak, amaçlarını yerini getirmesi için JavaScript’e ihtiyaç duyan ve o şekilde programlanabildikleri halde JavaScript olmadan düzgün çalışmayan bazı web siteleri vardır. - Privacy Browser, JavaScript’i açıp kapatmayı kolaylaştırarak bu sorunu çözme yoluna gider. - Gizlilik kalkanına dokunmak, onu mavi veya sarı - (ikisi de JavaScript’in devre dışı olduğunu gösterir) ve kırmızı (JavaScript'in etkin olduğunu gösterir) olarak değiştirecektir. - JavaScript etkinken ve devre dışıyken, webkay’in topladığı farklı bilgilere bakmak bilgilendiricidir.

- -

İnternette JavaScript devre dışı bırakılmış olarak gezinmek ve yalnızca gerektiğinde etkin hale getirmek, gizliliği koruma adına çok yararlı olacaktır. - Buna ek olarak, JavaScript, modern web siteleriyle birlikte gelen ekstra süprüntüler ve çok sayıda rahatsız edici reklamlar için kullanılır. - Devre dışı bırakıldığında, web siteleri daha hızlı yüklenecek, daha az ağ trafiği tüketilecek ve daha fazla pil ömrünü sağlayan daha az CPU gücü kullanımına yol açacaktır.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_local_storage_light.html b/app/src/main/assets/tr/guide_local_storage.html similarity index 90% rename from app/src/main/assets/tr/guide_local_storage_light.html rename to app/src/main/assets/tr/guide_local_storage.html index 2cd2ecba..106f70d2 100644 --- a/app/src/main/assets/tr/guide_local_storage_light.html +++ b/app/src/main/assets/tr/guide_local_storage.html @@ -20,11 +20,14 @@ - + + + + -

Birinci Taraf Çerezler

+

Birinci Taraf Çerezler

Birinci taraf çerezler, sayfanın üst kısmında yer alan URL çubuğundaki web sitesi tarafından oluşturulur.

@@ -41,10 +44,10 @@

Oturum açılan neredeyse tüm web sitelerine, bir kullanıcının giriş yapması için birinci taraf çerezlerin etkin olması gerekir. Bu da web sitelerinin, site içinde sayfadan sayfaya atladığınızda, o kişinin hala siz olduğunuza emin olmasını sağlar, ki bana göre bu, çerezler için kullanılan birkaç yasal yöntemden biridir.

-

Birinci taraf çerezler etkinken, ancak JavaScript devre dışı bırakılmışsa, gizlilik simgesi bir uyarı olarak sarı olacaktır.

+

Birinci taraf çerezler etkinken, ancak JavaScript devre dışı bırakılmışsa, gizlilik simgesi bir uyarı olarak sarı olacaktır.

-

Üçüncü Taraf Çerezler

+

Üçüncü Taraf Çerezler

Üçüncü taraf çerezler, sayfanın üst kısmında yer alan URL'deki farklı sunuculardan yüklenen bir web sitesinin parçaları tarafından oluşturulur. Örneğin, kullanıcılarına reklam gösteren çoğu web sitesi, reklamlarını Google Ad Sense gibi bir üçüncü taraf reklam aracısından yükler. @@ -71,7 +74,7 @@ birinci ve üçüncü taraf çerezler arasında ayrım yapmaz. Böylece birinci taraf çerezlerini etkinleştirmek üçüncü taraf çerezlerini de etkinleştirir.

-

DOM Depolama

+

DOM Depolama

Document Object Model (Belge Nesne Modeli) depolaması, web depolaması olarak bilinir, büyük kurabiyeler gibidir. Tek bir URL'deki tüm çerezler için maksimum birleşik depolama boyutu 4 kilobayt iken, @@ -79,7 +82,7 @@ DOM depolama, veri okumak ve yazmak için JavaScript kullandığından dolayı, JavaScript etkinleştirilmeden o da etkin olamaz.

-

Form Verisi

+

Form Verisi

Form verileri, kullanıcı adları, adresler, telefon numaraları vb. gibi web formlarına yazılan bilgileri içerir ve gelecekteki ziyaretler için onları açılır bir kutuya listeler. Diğer yerel depolama biçimlerinin aksine, form verisi, belirli bir kullanıcı etkileşimi olmadan web sunucusuna gönderilmez. diff --git a/app/src/main/assets/tr/guide_local_storage_dark.html b/app/src/main/assets/tr/guide_local_storage_dark.html deleted file mode 100644 index 39539740..00000000 --- a/app/src/main/assets/tr/guide_local_storage_dark.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - -

Birinci Taraf Çerezler

- -

Birinci taraf çerezler, sayfanın üst kısmında yer alan URL çubuğundaki web sitesi tarafından oluşturulur.

- -

İnternetin ilk günlerinde, ileri zamanlı erişimler için web sitelerinin bilgisayarda bilgi depolayabilmesinin avantajlı olacağı görüşü kesinlik kazandı. - Örneğin, hava durumu bilgileri gösteren bir web sitesi, kullanıcıdan bir posta kodu isteyebilir ve daha sonra bunu bir çerezde depolar. - Kullanıcının web sitesini bir sonraki ziyaretinde, posta kodunu tekrar girmesine gerek kalmadan hava durumu bilgisi otomatik olarak yüklenir.

- -

Web’deki diğer her olayda olduğu gibi, bazı kötü amaçlı zeki insanlar, - kullanıcıların ne olup bittiğini bilselerdi onaylamayacakları şeyleri yapmak için çerezleri kötüye kullanmanın her türlü yolunu buldular. - Örneğin, bir web sitesi, bir cihazda özgün bir seri numarasına sahip bir çerez oluşturabilir. - Daha sonra, bir kullanıcının o cihaz üzerinden web sitesini her ziyaretinde, cihaz farklı IP adreslerinden bağlansa bile, - sunucunun o seri numarası için devam ettirdiği özgün profile bağlanabilir.

- -

Oturum açılan neredeyse tüm web sitelerine, bir kullanıcının giriş yapması için birinci taraf çerezlerin etkin olması gerekir. - Bu da web sitelerinin, site içinde sayfadan sayfaya atladığınızda, o kişinin hala siz olduğunuza emin olmasını sağlar, ki bana göre bu, çerezler için kullanılan birkaç yasal yöntemden biridir.

- -

Birinci taraf çerezler etkinken, ancak JavaScript devre dışı bırakılmışsa, gizlilik simgesi bir uyarı olarak sarı olacaktır.

- - -

Üçüncü Taraf Çerezler

- -

Üçüncü taraf çerezler, sayfanın üst kısmında yer alan URL'deki farklı sunuculardan yüklenen bir web sitesinin parçaları tarafından oluşturulur. - Örneğin, kullanıcılarına reklam gösteren çoğu web sitesi, reklamlarını Google Ad Sense gibi bir üçüncü taraf reklam aracısından yükler. - Web sitesi her yüklendiğinde, reklam aracısından bir reklam göstermesi istenir. - Reklam aracısı kullanıcı hakkında sahip olabildiği her bilgiyi analiz eder, reklamları için ödemeye istekli olan reklamverenlerin güncel oranına bakar ve gösterilecek reklamı seçer. - Web sitelerinin reklamları gösteren bölümü, ana sunucu yerine üçüncü taraf aracının sunucusundan yüklenir.

- -

İnternetteki reklamların çoğu sadece birkaç aracı tarafından işlendiğinden, aracıların, - kullanıcılarının cihazına bir izleme çerezi koyabileceklerini ve kullanıcılarının gittiği her yeri bilebileceklerini fark etmeleri uzun sürmedi. - Bir aracıdan bir reklam her yüklendiğinde, yaptığı ilk şey, cihazın bir takip çerezinin içindeki özgün bir seri numarasına sahip olup olmadığını kontrol etmek olacaktır. - Varsa, bu seri numarasının profilini arar ve yeni siteyi not eder. Bir kullanıcının ceviz gibi genellikle aramadığı bir ürün için bir web sitesinde arama yapmasının ardından, - her ziyaret ettiği web sitesinde ceviz hakkında reklamlar görmeye başlamasının sebebi budur.

- -

Reklam aracılarına ek olarak, sosyal medya siteleri de harekete geçebileceklerini fark ettiler. - Birkaç yıl önce, Facebook ve Twitter gibi büyük sosyal medya siteleri, çok sayıda web sitesini, sayfalarına küçük sosyal medya simgelerini yerleştirmenin yararlarına olacağına ikna etti. - Bu simgeler sadece görüntü değiller, aslında sosyal medya sitesine geri bağlanan gömülü kod - içerirler ve diğer şeylerin yanı sıra, cihaza bir üçüncü taraf çerez yüklerler. Bu çerezler, kullanıcının sosyal medya platformunda bir hesabı olmasa dahi yerleştirilir. - Zaman içinde, Facebook gibi şirketler (aynı zamanda bir reklam ağı da yürüten), - sitelerinde hiç hesap oluşturmayan - insanlar hakkında oldukça fazla sayıda ayrıntılı profil oluşturdular.

- -

Üçüncü taraf çerezlerini etkinleştirmek için hiçbir sebep yoktur. Android KitKat versiyonuna ya da daha eski versiyonlara (versiyon <=4.4.4 veya API <=20) sahip cihazlarda, WebView - - birinci ve üçüncü taraf çerezler arasında ayrım yapmaz. Böylece birinci taraf çerezlerini etkinleştirmek üçüncü taraf çerezlerini de etkinleştirir.

- - -

DOM Depolama

- -

Document Object Model (Belge Nesne Modeli) depolaması, web depolaması olarak bilinir, büyük kurabiyeler gibidir. - Tek bir URL'deki tüm çerezler için maksimum birleşik depolama boyutu 4 kilobayt iken, - DOM depolama bu boyutu her site için megabaytlara çıkarabilir. - DOM depolama, veri okumak ve yazmak için JavaScript kullandığından dolayı, JavaScript etkinleştirilmeden o da etkin olamaz.

- - -

Form Verisi

- -

Form verileri, kullanıcı adları, adresler, telefon numaraları vb. gibi web formlarına yazılan bilgileri içerir ve gelecekteki ziyaretler için onları açılır bir kutuya listeler. - Diğer yerel depolama biçimlerinin aksine, form verisi, belirli bir kullanıcı etkileşimi olmadan web sunucusuna gönderilmez. - Android Oreo (8.0) versiyonundan başlayarak, - WebView’in form verisi Otomatik Doldurma servisi ile değiştirildi. - Bu nedenle, form verisi kontrolleri artık daha yeni Android versiyona sahip cihazlarda görünmeyecek.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_overview_dark.html b/app/src/main/assets/tr/guide_overview.html similarity index 83% rename from app/src/main/assets/tr/guide_overview_dark.html rename to app/src/main/assets/tr/guide_overview.html index 776736ef..59b46746 100644 --- a/app/src/main/assets/tr/guide_overview_dark.html +++ b/app/src/main/assets/tr/guide_overview.html @@ -1,5 +1,5 @@ + -

Gerçek Gizlilik

+

Gerçek Gizlilik

Privacy Browser, internette gezinirken, gizliliğinizi olabildiğince çok kontrol altına alabilmenizi sağlamak için tasarlanmıştır. Bir tarayıcı bir web sitesine bağlandığında, bağlantıyı kolaylaştırmak için sunucuya aktarılan bazı bilgiler gereklidir. @@ -38,7 +41,7 @@ Privacy Browser, kullanıcıya mümkün olduğunca fazla bilgi vermek ve kullanıcının bu izleme teknikleri üzerinde kontrol sağlaması için tasarlanmıştır.

-

Android WebView Kısıtlamaları

+

Android WebView Kısıtlamaları

Privacy Browser, web sitelerini oluşturmak için Android’in yerleşik WebView (Web Görünümü) sürümünü kullanır. Gizlilik ayarlarını yönetmek için WebView’ın oluşturduğu kontrollerde bazı kısıtlamalar vardır. diff --git a/app/src/main/assets/tr/guide_overview_light.html b/app/src/main/assets/tr/guide_overview_light.html deleted file mode 100644 index 088bc3a5..00000000 --- a/app/src/main/assets/tr/guide_overview_light.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - -

Gerçek Gizlilik

- -

Privacy Browser, internette gezinirken, gizliliğinizi olabildiğince çok kontrol altına alabilmenizi sağlamak için tasarlanmıştır. - Bir tarayıcı bir web sitesine bağlandığında, bağlantıyı kolaylaştırmak için sunucuya aktarılan bazı bilgiler gereklidir. - Örneğin, sunucu, yanıtı nereye göndereceğini bilmesi için IP adresinize ve bir port numarasına ihtiyaç duyar. - Bu bilgiler sunucu tarafından sık sık kaydedilir, bu da web sitenin geliştiricisinin, - bir web sayfasının kaç kez yüklendiğini ve kaç farklı IP adresinin eriştiğini gösteren raporlar üretmesini sağlar.

- -

Ancak, çoğu web sitesi operatörü, birçok web sitesinde gezinmelerini izlemek de dahil ziyaretçilerinden daha fazla bilgi ister. - Bu izlemeyi kolaylaştırmak için bir kullanıcının cihazından ekstra bilgi talep etme ve cihazına ekstra bilgi yerleştirme amacı güden birçok farklı teknik vardır. - Neredeyse tüm tarayıcılar, eylemlerini kullanıcıyı bilgilendirmeden, gönüllü olarak bu izlemeye katılır. - Privacy Browser, kullanıcıya mümkün olduğunca fazla bilgi vermek ve kullanıcının bu izleme teknikleri üzerinde kontrol sağlaması için tasarlanmıştır.

- - -

Android WebView Kısıtlamaları

- -

Privacy Browser, web sitelerini oluşturmak için Android’in yerleşik WebView (Web Görünümü) sürümünü kullanır. - Gizlilik ayarlarını yönetmek için WebView’ın oluşturduğu kontrollerde bazı kısıtlamalar vardır. - Örneğin, birtakım teknolojileri devre dışı bırakırken, bazı JavaScript komutlarını etkinleştirmek mümkün değildir. - Gelecek versiyonlarında, Privacy Browser, Privacy WebView adlı özel bir WebView sürümüne geçiş yapacaktır.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_proxies_dark.html b/app/src/main/assets/tr/guide_proxies.html similarity index 88% rename from app/src/main/assets/tr/guide_proxies_dark.html rename to app/src/main/assets/tr/guide_proxies.html index 0eaf5fb6..9a2e0d0c 100644 --- a/app/src/main/assets/tr/guide_proxies_dark.html +++ b/app/src/main/assets/tr/guide_proxies.html @@ -20,11 +20,14 @@ - + + + + -

Proxies and Their Limits

+

Proxies and Their Limits

İnternet gizliliğini ihlal etmek isteyen iki genel kötü oyuncu kategorisi vardır: İSS’lere (İnternet Servis Sağlayıcıları) erişimi olan kötü niyetli hükümetler ve sosyal ve reklam ağlarını yöneten mega şirketler. @@ -32,7 +35,7 @@ but not from mega corporations (which embed malicious code on web servers).

-

Kötü Niyetli Hükümetler

+

Kötü Niyetli Hükümetler

Kötü niyetli hükümetler, sık sık muhalifleri ve aktivistleri cezalandırmak için kendi vatandaşlarını gözetler. Bunu genellikle yerel İSS’leri kullanarak ve onları, tüm kullanıcıların internet ziyaretlerinde kullandıkları IP adresleri gösteren bilgileri ifşa etmeye zorlayarak yaparlar. @@ -44,7 +47,7 @@ and users could be punished because governments assume they are doing something that is prohibited. Thus, proxies can be helpful, but they aren’t a panacea.

-

Mega Şirketler

+

Mega Şirketler

Bir kullanıcı bir web sunucusuna bağlandığında, web sunucusu kullanıcının IP adresini görebilir. Mükemmel bir teknik olmasa da, IP adresleri makul bir doğrulukla fiziksel adreslere dönüştürülebilir. @@ -65,13 +68,13 @@ ve fingerprint yapılması zor olan bir tarayıcı kullanmak olacaktır.

-

Using Proxies

+

Using Proxies

Despite their limitations, proxies can be useful in some circumstances. Tor and I2P have Android apps that make it easy to use their proxy networks. When proxying is turned on in Privacy Browser, the app bar will have a light blue background instead of the default light grey. Because traffic is being routed through several proxy nodes, using a layered proxy is often much slower than connecting directly to the internet.

- + \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_proxies_light.html b/app/src/main/assets/tr/guide_proxies_light.html deleted file mode 100644 index fb9bac1b..00000000 --- a/app/src/main/assets/tr/guide_proxies_light.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - -

Proxies and Their Limits

- -

İnternet gizliliğini ihlal etmek isteyen iki genel kötü oyuncu kategorisi vardır: - İSS’lere (İnternet Servis Sağlayıcıları) erişimi olan kötü niyetli hükümetler ve sosyal ve reklam ağlarını yöneten mega şirketler. - Proxies like TOR (The Onion Router) and I2P (the Invisible Internet Project) are useful in protecting privacy from malicious governments (which spy on traffic in transit) - but not from mega corporations (which embed malicious code on web servers).

- - -

Kötü Niyetli Hükümetler

- -

Kötü niyetli hükümetler, sık sık muhalifleri ve aktivistleri cezalandırmak için kendi vatandaşlarını gözetler. - Bunu genellikle yerel İSS’leri kullanarak ve onları, tüm kullanıcıların internet ziyaretlerinde kullandıkları IP adresleri gösteren bilgileri ifşa etmeye zorlayarak yaparlar. - Layered proxies are designed to defeat this infringement of privacy by encrypting the traffic from a user’s device and routing it through multiple servers on the internet - before sending it on to the final destination. - This means that no individual ISP, server, or website, can know both the IP address of the user’s device and the IP address of the final web server. - Malicious governments and the ISPs they control cannot tell which web servers a user is accessing, although they can tell that the user is using a layered proxy service. - In some parts of the world, using proxies could be construed as an evidence of illegal behavior (“If you didn’t have anything to hide you wouldn’t be encrypting your traffic”) - and users could be punished because governments assume they are doing something that is prohibited. Thus, proxies can be helpful, but they aren’t a panacea.

- - -

Mega Şirketler

- -

Bir kullanıcı bir web sunucusuna bağlandığında, web sunucusu kullanıcının IP adresini görebilir. - Mükemmel bir teknik olmasa da, IP adresleri makul bir doğrulukla fiziksel adreslere dönüştürülebilir. - Küçük web sunucuları, kendilerini ziyaret eden kullanıcılarının konumlarını belirlemek için IP adreslerine genel anlamda güvenirler. - Proxies are a good solution to mask the user’s location from these servers. - Ancak, sosyal medya ve reklam ağlarına sahip büyük mega kuruluşlar, cihazlar ve IP adresler üzerinden kullanıcıları izlemek için tüm bilgileri kullanır. - Bu profiller, JavaScript, çerezler, izleme kimlikleri ve browser fingerprinting (tarayıcı tanılama) - dahil olmak üzere kullanıcıları tanımlamak için çeşitli teknikleri kullanır. - İnternetteki web sitelerinin büyük çoğunluğu ya ana ağlardan birinden bir reklam yüklediğinden ya da JavaScript ile ilişkilendirilen sosyal medya simgelerini yerleştirdiklerinden dolayı, - mega şirketler, hemen hemen her çevrimiçi kullanıcı için profil oluşturup internet aktivitelerini ilgisi olmayan sitelerden bile takip edebilirler.

- -

Ziyaret edilen her siteyi, satın alınan her şeyi, satın almak için kullanılan her kredi kartını, eşyaların kargolandığı her adresi ve internete yüklenen her fotoğrafın GPS metaverilerini izlerler. - Bu sayede, bir kullanıcının yaşı, cinsiyeti, medeni hali, adresi, politik görüşü, dini görüşü, aile çevresi, evcil hayvan sayısı ve elde edebildikleri her şey hakkında bir profil oluştururlar. - Hatta yerel mağazalardan kredi kart işlem veri tabanlarını satın alırlar, böylece oluşturdukları profillerdeki kullanıcıların çevrimdışı satın alma modellerini de takip edebilirler. - Because they already have much more accurate address information about a user than an IP address discloses, proxies provides no real privacy protection against mega corporations.

- -

Mega şirketlere karşı en iyi gizlilik koruması, reklamları engellemek, JavaScript’i, DOM depolamayı ve çerezleri devre dışı bırakıp web gezintisi yapmak - ve fingerprint yapılması zor olan bir tarayıcı kullanmak olacaktır.

- - -

Using Proxies

- -

Despite their limitations, proxies can be useful in some circumstances. - Tor and I2P - have Android apps that make it easy to use their proxy networks. When proxying is turned on in Privacy Browser, the app bar will have a light blue background instead of the default light grey. - Because traffic is being routed through several proxy nodes, using a layered proxy is often much slower than connecting directly to the internet.

- - - - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_requests_light.html b/app/src/main/assets/tr/guide_requests.html similarity index 92% rename from app/src/main/assets/tr/guide_requests_light.html rename to app/src/main/assets/tr/guide_requests.html index e44ccc48..d93dfa6f 100644 --- a/app/src/main/assets/tr/guide_requests_light.html +++ b/app/src/main/assets/tr/guide_requests.html @@ -1,5 +1,5 @@ + -

Kaynak Ä°stekleri

+

Kaynak Ä°stekleri

Bir URL yüklendiğinde, genellikle CCS, JavaScript, resim ve diğer dosyalar için birkaç kaynak isteği yapar. Bu isteklerle ilgili detaylar İstekler etkinliğinden ulaşılabilir. Gezinti çekmecesi, İstekler etkinliğine götüren bir bağlantı içerir ve ayrıca bu etkinlik kaç tane isteğin engellediğini gösterir. Bir isteğe dokunulduğunda, neden izin verildiğine ya da engellendiğine dair detaylar görüntülenir.

-

+

Privacy Browser, Adblock sözdizimini (Adblock syntax) temel alan 4 yaygın engel listesini içerir: EasyList, EasyPrivacy, Fanboy’s Annoyance List ve Fanboy’s Social Blocking List. diff --git a/app/src/main/assets/tr/guide_requests_dark.html b/app/src/main/assets/tr/guide_requests_dark.html deleted file mode 100644 index e622e7a5..00000000 --- a/app/src/main/assets/tr/guide_requests_dark.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - -

Kaynak Ä°stekleri

- -

Bir URL yüklendiğinde, genellikle CCS, JavaScript, resim ve diğer dosyalar için birkaç kaynak isteği yapar. Bu isteklerle ilgili detaylar İstekler etkinliğinden ulaşılabilir. - Gezinti çekmecesi, İstekler etkinliğine götüren bir bağlantı içerir ve ayrıca bu etkinlik kaç tane isteğin engellediğini gösterir. - Bir isteğe dokunulduğunda, neden izin verildiğine ya da engellendiğine dair detaylar görüntülenir.

- -

- -

Privacy Browser, Adblock sözdizimini (Adblock syntax) temel alan 4 yaygın engel listesini içerir: - EasyList, EasyPrivacy, Fanboy’s Annoyance List ve Fanboy’s Social Blocking List. - Bu engel listeleri, Privacy Browser tarafından, aşağıda listelenmiş olan kaynak isteklerini kontrol eden 22 alt listeye göre işlenmiştir.

- -
    -
  1. Ana Beyaz Listesi
  2. -
  3. Final Beyaz Listesi
  4. -
  5. Domain Beyaz Listesi
  6. -
  7. Domain Başlangıç Beyaz Listesi
  8. -
  9. Domain Final Beyaz Listesi
  10. -
  11. Üçüncü Taraf Beyaz Listesi
  12. -
  13. Üçüncü Taraf Domain Beyaz Listesi
  14. -
  15. Üçüncü Taraf Domain Başlangıç Beyaz Listesi
  16. -
  17. Ana Kara Listesi
  18. -
  19. Başlangıç Kara Listesi
  20. -
  21. Final Kara Listesi
  22. -
  23. Domain Kara Listesi
  24. -
  25. Domain Başlangıç Kara Listesi
  26. -
  27. Domain Final Kara Listesi
  28. -
  29. Domain Düzenli İfade (Regular Expression) Kara Listesi
  30. -
  31. Üçüncü Taraf Kara Listesi
  32. -
  33. Üçüncü Taraf Başlangıç Kara Listesi
  34. -
  35. Üçüncü Taraf Domain Kara Listesi
  36. -
  37. Üçüncü Taraf Domain Başlangıç Kara Listesi
  38. -
  39. Üçüncü Taraf Düzenli İfade (Regular Expression) Kara Listesi
  40. -
  41. Üçüncü Taraf Domain Düzenli İfade (Regular Expression) Kara Listesi
  42. -
  43. Düzenli İfade (Regular Expression) Kara Listesi
  44. -
- -

Başlangıç listeleri, URL'nin başlangıcına göre kontrol eder. Final listeleri, URL'nin sonuna göre kontrol eder. Domain listeleri, yalnızca belli domainlere göre kontrol eder. - Üçüncü taraf listeleri, yalnızca isteğin kök domaini ana URL'nin kök domaininden farklıysa uygulanır. - Düzenli ifade listeleri, düzenli ifade sözdizimini (regular expression syntax) takip eder. - Her alt liste öğesinin bir veya daha fazla girdisi vardır. - Domain alt listeleri işe karıştığında, ilk girdi ana URL'nin domaini ile eşleşirse, kaynak isteği yalnızca öğeye göre kontrol edilir.

- -

Anroid’in WebView kısıtlamaları yüzünden ve isteklerin işlenmesini hızlandırmak için Privacy Browser, Adblock sözdiziminin basitleştirilmiş bir yorumunu uygular. - Bu durum, bazen, kaynakların orijinal girdi tarafından amaçlanmayan şekillerde izin verildiği veya engellendiği yanlış pozitif (false positive) durumuna yol açabilir. - Engel listesi girdilerinin nasıl işlendiğine dair daha ayrıntılı bir açıklama stoutner.com adresinde bulunabilir.

- -

Privacy Browser'a 3 yeni engel listesi eklendi. - UltraList ve UltraPrivacy, - EasyList ve EasyPrivacy'nin engellemediği reklamları ve izleyicileri de engeller. Üçüncü liste ise tüm üçüncü taraf istekleri engeller. - Bir istek yalnızca, isteğin temel domaini bağlantının temel domaininden farklıysa üçüncü taraf olarak kabul edilir. - Örneğin, www.website.com adresi images.website.com adresinden bir resim yüklüyorsa, - her ikisi de aynı temel domaini (website.com) paylaştığı için bu üçüncü taraf isteği olarak engellenmez. - Tüm üçüncü taraf istekleri engellemek gizliliği arttırır, fakat çok sayıda web sitesini bozduğu için bu engel listesi varsayılan olarak devre dışıdır.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_ssl_certificates_dark.html b/app/src/main/assets/tr/guide_ssl_certificates.html similarity index 85% rename from app/src/main/assets/tr/guide_ssl_certificates_dark.html rename to app/src/main/assets/tr/guide_ssl_certificates.html index 2d12f59f..2ca21c4a 100644 --- a/app/src/main/assets/tr/guide_ssl_certificates_dark.html +++ b/app/src/main/assets/tr/guide_ssl_certificates.html @@ -1,5 +1,5 @@ + -

Güvenle Bağlanma

+

Güvenle Bağlanma

Şifrelenmiş bir URL'yi (HTTPS ile başlayan) ziyaret ederken, web sunucusu hem tarayıcıya gönderilen bilgileri şifrelemek hem de sunucuyu tanımlamak için bir SSL sertifikası kullanır. Sunucu tanımlamasının amacı, tarayıcı ile web sunucusu arasında konumlanan bir makinenin, sunucu gibi davranmasını ve nakledilen bilgilerin şifresini çözmesini önlemektir. @@ -36,14 +39,14 @@

Bir SSL sertifikası sabitlemek, tarayıcıya, özel bir domain için belirli bir SSL sertifikasına güvenebileceğini söyler. Geçerli olsa dahi, diğer sertifikalar reddedilecektir.

-

+

SSL sertifikalarının belirli bir tarihte süresi dolması sebebiyle, sabitlenmiş dahi olsa, SSL sertifikalarının yasal olarak zaman zaman güncellenmesi gerekir. Genel bir kural olarak, çoğu durumda SSL sertifikalarını sabitlemeye gerek yoktur. Ancak, bazı güçlü kuruluşların onları hedef aldığından şüphelenenler için SSL sertifikası sabitlemek bir MITM saldırısını algılayıp engelleyebilir. Privacy Browser, aynı zamanda IP adreslerini de sabitleyebilir.

-

+

SSL sertifikaları Domain Ayarlarından sabitlenebilir. MITM saldırılarına karşı korumanın yanı sıra, kablosuz bir router veya erişim noktası gibi bir cihaz için kendiliğinden imzalı bir sertifikayı sabitlemek, diff --git a/app/src/main/assets/tr/guide_ssl_certificates_light.html b/app/src/main/assets/tr/guide_ssl_certificates_light.html deleted file mode 100644 index cf2b28b8..00000000 --- a/app/src/main/assets/tr/guide_ssl_certificates_light.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - -

Güvenle Bağlanma

- -

Şifrelenmiş bir URL'yi (HTTPS ile başlayan) ziyaret ederken, web sunucusu hem tarayıcıya gönderilen bilgileri şifrelemek hem de sunucuyu tanımlamak için bir SSL sertifikası kullanır. - Sunucu tanımlamasının amacı, tarayıcı ile web sunucusu arasında konumlanan bir makinenin, sunucu gibi davranmasını ve nakledilen bilgilerin şifresini çözmesini önlemektir. - Bu saldırı türü Man In The Middle (Ortadaki Adam, MITM) saldırısı olarak bilinir. - SSL sertifikaları, sertifika otoriteleri tarafından oluşturulur, bu otoriteler, bir sunucunun kimliğini doğrulayan ve bir ücret karşılığında sertifika üreten şirketler topluluğudur. - Android, güvenilir sertifika otoritelerinin bir listesine sahiptir, ve herhangi bir web sitesi için bu sertifikalardan herhangi birini kabul edecektir. - Normal koşullarda, bir kuruluşun kontrol edemediği bir domain için SSL sertifikası alması mümkün değildir, - fakat gerçekte, birçok hükümet ve büyük şirket bunu rahatlıkla yapabilir.

- -

Bir SSL sertifikası sabitlemek, tarayıcıya, özel bir domain için belirli bir SSL sertifikasına güvenebileceğini söyler. Geçerli olsa dahi, diğer sertifikalar reddedilecektir.

- -

- -

SSL sertifikalarının belirli bir tarihte süresi dolması sebebiyle, sabitlenmiş dahi olsa, SSL sertifikalarının yasal olarak zaman zaman güncellenmesi gerekir. - Genel bir kural olarak, çoğu durumda SSL sertifikalarını sabitlemeye gerek yoktur. - Ancak, bazı güçlü kuruluşların onları hedef aldığından şüphelenenler için SSL sertifikası sabitlemek bir MITM saldırısını algılayıp engelleyebilir. - Privacy Browser, aynı zamanda IP adreslerini de sabitleyebilir.

- -

- -

SSL sertifikaları Domain Ayarlarından sabitlenebilir. - MITM saldırılarına karşı korumanın yanı sıra, kablosuz bir router veya erişim noktası gibi bir cihaz için kendiliğinden imzalı bir sertifikayı sabitlemek, - web sitesinin her yüklenmesinde normal olarak gösterilen hata mesajını kaldıracaktır. - Aktif sekmeye dokunmak, geçerli web sitesinin SSL sertifikasını gösterir.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_tracking_ids_dark.html b/app/src/main/assets/tr/guide_tracking_ids.html similarity index 78% rename from app/src/main/assets/tr/guide_tracking_ids_dark.html rename to app/src/main/assets/tr/guide_tracking_ids.html index 8b444cde..17d6628a 100644 --- a/app/src/main/assets/tr/guide_tracking_ids_dark.html +++ b/app/src/main/assets/tr/guide_tracking_ids.html @@ -1,5 +1,5 @@ + -

Takip Etme

+

Takip Etme

Birkaç yıl önce, W3C (World Wide Web Konsorsiyumu), tarayıcıların web sunucularına izlenmesini istemediklerini bildirmek için bir mekanizma yarattı. Bu mekanizma, web isteklerini içeren bir başlık DNT (Do Not Track) ekleyerek çalışır.

@@ -33,7 +36,7 @@ Örneğin, Yahoo, Google, Microsoft ve Facebook, en azından bazı DNT başlıklarını yok sayar.

-

URL Modifikasyonu

+

URL Modifikasyonu

Privacy Browser, Google Analytics'ten ?utm_ ve Facebook'tan ?fbclick= gibi URL'deki takip id kısımlarını kaldırır. URL modifikasyonu, herhangi bir soruna yol açması halinde ayarlardan kapatılabilir.

diff --git a/app/src/main/assets/tr/guide_tracking_ids_light.html b/app/src/main/assets/tr/guide_tracking_ids_light.html deleted file mode 100644 index 700db3c1..00000000 --- a/app/src/main/assets/tr/guide_tracking_ids_light.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - -

Takip Etme

- -

Birkaç yıl önce, W3C (World Wide Web Konsorsiyumu), tarayıcıların web sunucularına izlenmesini istemediklerini bildirmek için bir mekanizma yarattı. - Bu mekanizma, web isteklerini içeren bir başlık DNT (Do Not Track) ekleyerek çalışır.

- -

Fakat DNT(Takip Etme) başlığı, gerçekten herhangi bir gizlilik sağlamaz, çünkü çoğu web sunucusu bunu görmezden gelir. - Örneğin, Yahoo, Google, Microsoft ve Facebook, en azından bazı DNT başlıklarını yok sayar.

- - -

URL Modifikasyonu

- -

Privacy Browser, Google Analytics'ten ?utm_ ve Facebook'tan - ?fbclick= gibi URL'deki takip id kısımlarını kaldırır. URL modifikasyonu, herhangi bir soruna yol açması halinde ayarlardan kapatılabilir.

- - \ No newline at end of file diff --git a/app/src/main/assets/tr/guide_user_agent_dark.html b/app/src/main/assets/tr/guide_user_agent.html similarity index 91% rename from app/src/main/assets/tr/guide_user_agent_dark.html rename to app/src/main/assets/tr/guide_user_agent.html index ab87a1c8..2682a44a 100644 --- a/app/src/main/assets/tr/guide_user_agent_dark.html +++ b/app/src/main/assets/tr/guide_user_agent.html @@ -20,11 +20,14 @@ - + + + + -

Tarayıcı Kimliği

+

Tarayıcı Kimliği

Web tarayıcıları web sitelerine bağlandığında, sitelere, tarayıcıyı ve sahip olduğu oluşturma (render) özelliklerini belirten bir kullanıcı aracısı gönderir. Web sunucusu, bu bilgiyi web sitesinin hangi versiyonunun tarayıcıya gönderileceğini karar vermek için kullanabilir. @@ -38,7 +41,7 @@ Aşağıdaki ekran görüntüsü, Android 10 çalıştıran ve Android System WebView 84.0.4147.125 sürümüne sahip bir Pixel 2 XL cihazına aittir. Çoğu web sunucusu, bunu bir mobil tarayıcı olarak tanıyacak ve eğer varsa, sitenin mobil versiyonunu gösterecektir.

- +

Kullanıcı aracısında, bir web sitesini ziyaret eden birkaç kişinin aynı olacağı hakkında yeterli bilgi bazen vardır. Eğer kullanıcı aracısı başka bir özgün olmayan tanımlayıcı bilgi ile birleştirilirse, genellikle özgün fingerprint (tanı) oluşturulur. @@ -46,7 +49,7 @@ Bu test JavaScript etkinken çalıştırıldığında, ortaya çıkarılan bilgi miktarı büyük ölçüde artar. Ayrıca Browser Leaks ve Am I Unique bu konuda iyi bilgi kaynaklarıdır.

- +

Ortak tarayıcılar ve işletim sistemleriyle eşleşen önayarlı birkaç kullanıcı aracısı vardır. Browser Fingerprinting (Tarayıcı Tanılama) amaçları doğrultusunda, nadir olan herhangi bir şeyin takibi kolaylaşır. diff --git a/app/src/main/assets/tr/guide_user_agent_light.html b/app/src/main/assets/tr/guide_user_agent_light.html deleted file mode 100644 index 80d1703c..00000000 --- a/app/src/main/assets/tr/guide_user_agent_light.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - -

Tarayıcı Kimliği

- -

Web tarayıcıları web sitelerine bağlandığında, sitelere, tarayıcıyı ve sahip olduğu oluşturma (render) özelliklerini belirten bir kullanıcı aracısı gönderir. - Web sunucusu, bu bilgiyi web sitesinin hangi versiyonunun tarayıcıya gönderileceğini karar vermek için kullanabilir. - Örneğin, birçok web sitesinin masaüstü ve mobil tarayıcılar için farklı versiyonları vardır.

- -

Privacy Browser, varsayılan olarak, kendi özel kullanıcı aracısı olan PrivacyBrowser/1.0 kullanır. Bu, web sunucusuna minimum düzeyde bilgi gönderir. - Çünkü web sunucuları bunu bir mobil kullanıcı aracısı olarak tanımlayamadıkları için genellikle sitenin masaüstü versiyonunu gösterir.

- -

Buna kıyasla, WebView’ın varsayılan kullanıcı aracısı cihazın donanımı ve yazılımı hakkında büyük miktarda bilgiyi ortaya döker. - Ayarlar ekranında, Kullanıcı Aracısı olarak Varsayılan WebView seçmek gönderilecek kullanıcı aracısını gösterir. - Aşağıdaki ekran görüntüsü, Android 10 çalıştıran ve Android System WebView 84.0.4147.125 sürümüne sahip bir Pixel 2 XL cihazına aittir. - Çoğu web sunucusu, bunu bir mobil tarayıcı olarak tanıyacak ve eğer varsa, sitenin mobil versiyonunu gösterecektir.

- - - -

Kullanıcı aracısında, bir web sitesini ziyaret eden birkaç kişinin aynı olacağı hakkında yeterli bilgi bazen vardır. - Eğer kullanıcı aracısı başka bir özgün olmayan tanımlayıcı bilgi ile birleştirilirse, genellikle özgün fingerprint (tanı) oluşturulur. - The Electronic Frontier Foundation, bu kaynaklardan ne kadar bilgi toplandığını göstermek için Panopticlick adlı bir araç geliştirdi. - Bu test JavaScript etkinken çalıştırıldığında, ortaya çıkarılan bilgi miktarı büyük ölçüde artar. - Ayrıca Browser Leaks ve Am I Unique bu konuda iyi bilgi kaynaklarıdır.

- - - -

Ortak tarayıcılar ve işletim sistemleriyle eşleşen önayarlı birkaç kullanıcı aracısı vardır. - Browser Fingerprinting (Tarayıcı Tanılama) amaçları doğrultusunda, nadir olan herhangi bir şeyin takibi kolaylaşır. - Eğer Privacy Browser yaygınlaşırsa ve birçok insan kullanıcı aracısı olarak PrivacyBrowser/1.0 kullanırsa, gizlilik için iyi bir seçim olacaktır. - Firefox ve Chrome en yaygın kullanıcı aracılarıdır, ancak çok sık otomatik güncelleme aldıkları ve versiyon numaraları çok hızlı değiştiği için Privacy Browser’a dahil olan kullanıcı aracıları, - sunucu günlüklerinde yer alan kullanıcı aracılarının büyük çoğunluğu içinde gözden kaçacaktır.

- -

Bazı web siteleri, kullanıcı aracısını tanımazlarsa düzgün çalışmaz. - Kullanıcı aracısı olarak Varsayılan WebView ayarlamak veya genel olarak tanınan bir kullanıcı aracısı ayarlamak için domain ayarlarını kullanmak genellikle problemi çözer. - Android WebView’ı kullanıcı aracısının boş olmasına izin vermez. Eğer öyleyse, WebView, sunucuya varsayılan kullanıcı aracısını gönderir.

- - \ No newline at end of file diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.java index 2540ce49..3200c2be 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.java @@ -177,56 +177,52 @@ public class LogcatActivity extends AppCompatActivity implements SaveDialog.Save int menuItemId = menuItem.getItemId(); // Run the commands that correlate to the selected menu item. - switch (menuItemId) { - case R.id.copy: - // Get a handle for the clipboard manager. - ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + if (menuItemId == R.id.copy) { // Copy was selected. + // Get a handle for the clipboard manager. + ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - // Remove the incorrect lint error below that the clipboard manager might be null. - assert clipboardManager != null; + // Remove the incorrect lint error below that the clipboard manager might be null. + assert clipboardManager != null; - // Save the logcat in a clip data. - ClipData logcatClipData = ClipData.newPlainText(getString(R.string.logcat), logcatTextView.getText()); + // Save the logcat in a clip data. + ClipData logcatClipData = ClipData.newPlainText(getString(R.string.logcat), logcatTextView.getText()); - // Place the clip data on the clipboard. - clipboardManager.setPrimaryClip(logcatClipData); + // Place the clip data on the clipboard. + clipboardManager.setPrimaryClip(logcatClipData); - // Display a snackbar. - Snackbar.make(logcatTextView, R.string.logcat_copied, Snackbar.LENGTH_SHORT).show(); + // Display a snackbar. + Snackbar.make(logcatTextView, R.string.logcat_copied, Snackbar.LENGTH_SHORT).show(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.save) { // Save was selected. + // Instantiate the save alert dialog. + DialogFragment saveDialogFragment = SaveDialog.save(SaveDialog.SAVE_LOGCAT); - case R.id.save: - // Instantiate the save alert dialog. - DialogFragment saveDialogFragment = SaveDialog.save(SaveDialog.SAVE_LOGCAT); + // Show the save alert dialog. + saveDialogFragment.show(getSupportFragmentManager(), getString(R.string.save_logcat)); - // Show the save alert dialog. - saveDialogFragment.show(getSupportFragmentManager(), getString(R.string.save_logcat)); + // Consume the event. + return true; + } else if (menuItemId == R.id.clear) { // Clear was selected. + try { + // Clear the logcat. `-c` clears the logcat. `-b all` clears all the buffers (instead of just crash, main, and system). + Process process = Runtime.getRuntime().exec("logcat -b all -c"); - // Consume the event. - return true; + // Wait for the process to finish. + process.waitFor(); - case R.id.clear: - try { - // Clear the logcat. `-c` clears the logcat. `-b all` clears all the buffers (instead of just crash, main, and system). - Process process = Runtime.getRuntime().exec("logcat -b all -c"); - - // Wait for the process to finish. - process.waitFor(); - - // Reload the logcat. - new GetLogcat(this, 0).execute(); - } catch (IOException|InterruptedException exception) { - // Do nothing. - } - - // Consume the event. - return true; + // Reload the logcat. + new GetLogcat(this, 0).execute(); + } catch (IOException | InterruptedException exception) { + // Do nothing. + } - default: - // Don't consume the event. - return super.onOptionsItemSelected(menuItem); + // Consume the event. + return true; + } else { // The home button was pushed. + // Do not consume the event. The system will process the home command. + return super.onOptionsItemSelected(menuItem); } } 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 9f51f749..e393e310 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -1059,960 +1059,755 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } @Override - // Remove Android Studio's warning about the dangers of enabling JavaScript. We know. Oh, how we know. - @SuppressLint("SetJavaScriptEnabled") public boolean onOptionsItemSelected(MenuItem menuItem) { - // Get the selected menu item ID. - int menuItemId = menuItem.getItemId(); - // Get a handle for the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); // Get a handle for the cookie manager. CookieManager cookieManager = CookieManager.getInstance(); - // Run the commands that correlate to the selected menu item. - switch (menuItemId) { - case R.id.toggle_javascript: - // Toggle the JavaScript status. - currentWebView.getSettings().setJavaScriptEnabled(!currentWebView.getSettings().getJavaScriptEnabled()); - - // Update the privacy icon. `true` runs `invalidateOptionsMenu` as the last step. - updatePrivacyIcons(true); - - // Display a `Snackbar`. - if (currentWebView.getSettings().getJavaScriptEnabled()) { // JavaScrip is enabled. - Snackbar.make(webViewPager, R.string.javascript_enabled, Snackbar.LENGTH_SHORT).show(); - } else if (cookieManager.acceptCookie()) { // JavaScript is disabled, but first-party cookies are enabled. - Snackbar.make(webViewPager, R.string.javascript_disabled, Snackbar.LENGTH_SHORT).show(); - } else { // Privacy mode. - Snackbar.make(webViewPager, R.string.privacy_mode, Snackbar.LENGTH_SHORT).show(); - } - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.refresh: - if (menuItem.getTitle().equals(getString(R.string.refresh))) { // The refresh button was pushed. - // Reload the current WebView. - currentWebView.reload(); - } else { // The stop button was pushed. - // Stop the loading of the WebView. - currentWebView.stopLoading(); - } - - // Consume the event. - return true; - - case R.id.bookmarks: - // Open the bookmarks drawer. - drawerLayout.openDrawer(GravityCompat.END); - - // Consume the event. - return true; - - case R.id.toggle_first_party_cookies: - // Switch the first-party cookie status. - cookieManager.setAcceptCookie(!cookieManager.acceptCookie()); + // Get the selected menu item ID. + int menuItemId = menuItem.getItemId(); - // Store the first-party cookie status. - currentWebView.setAcceptFirstPartyCookies(cookieManager.acceptCookie()); + // Run the commands that correlate to the selected menu item. + if (menuItemId == R.id.toggle_javascript) { // JavaScript. + // Toggle the JavaScript status. + currentWebView.getSettings().setJavaScriptEnabled(!currentWebView.getSettings().getJavaScriptEnabled()); - // Update the menu checkbox. - menuItem.setChecked(cookieManager.acceptCookie()); + // Update the privacy icon. + updatePrivacyIcons(true); - // Update the privacy icon. `true` runs `invalidateOptionsMenu` as the last step. - updatePrivacyIcons(true); + // Display a `Snackbar`. + if (currentWebView.getSettings().getJavaScriptEnabled()) { // JavaScrip is enabled. + Snackbar.make(webViewPager, R.string.javascript_enabled, Snackbar.LENGTH_SHORT).show(); + } else if (cookieManager.acceptCookie()) { // JavaScript is disabled, but first-party cookies are enabled. + Snackbar.make(webViewPager, R.string.javascript_disabled, Snackbar.LENGTH_SHORT).show(); + } else { // Privacy mode. + Snackbar.make(webViewPager, R.string.privacy_mode, Snackbar.LENGTH_SHORT).show(); + } - // Display a snackbar. - if (cookieManager.acceptCookie()) { // First-party cookies are enabled. - Snackbar.make(webViewPager, R.string.first_party_cookies_enabled, Snackbar.LENGTH_SHORT).show(); - } else if (currentWebView.getSettings().getJavaScriptEnabled()) { // JavaScript is still enabled. - Snackbar.make(webViewPager, R.string.first_party_cookies_disabled, Snackbar.LENGTH_SHORT).show(); - } else { // Privacy mode. - Snackbar.make(webViewPager, R.string.privacy_mode, Snackbar.LENGTH_SHORT).show(); - } + // Reload the current WebView. + currentWebView.reload(); + // Consume the event. + return true; + } else if (menuItemId == R.id.refresh) { // Refresh. + // Run the command that correlates to the current status of the menu item. + if (menuItem.getTitle().equals(getString(R.string.refresh))) { // The refresh button was pushed. // Reload the current WebView. currentWebView.reload(); + } else { // The stop button was pushed. + // Stop the loading of the WebView. + currentWebView.stopLoading(); + } - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.bookmarks) { // Bookmarks. + // Open the bookmarks drawer. + drawerLayout.openDrawer(GravityCompat.END); - case R.id.toggle_third_party_cookies: - if (Build.VERSION.SDK_INT >= 21) { - // Switch the status of thirdPartyCookiesEnabled. - cookieManager.setAcceptThirdPartyCookies(currentWebView, !cookieManager.acceptThirdPartyCookies(currentWebView)); + // Consume the event. + return true; + } else if (menuItemId == R.id.toggle_first_party_cookies) { // First-party cookies. + // Switch the first-party cookie status. + cookieManager.setAcceptCookie(!cookieManager.acceptCookie()); - // Update the menu checkbox. - menuItem.setChecked(cookieManager.acceptThirdPartyCookies(currentWebView)); + // Store the first-party cookie status. + currentWebView.setAcceptFirstPartyCookies(cookieManager.acceptCookie()); - // Display a snackbar. - if (cookieManager.acceptThirdPartyCookies(currentWebView)) { - Snackbar.make(webViewPager, R.string.third_party_cookies_enabled, Snackbar.LENGTH_SHORT).show(); - } else { - Snackbar.make(webViewPager, R.string.third_party_cookies_disabled, Snackbar.LENGTH_SHORT).show(); - } + // Update the menu checkbox. + menuItem.setChecked(cookieManager.acceptCookie()); - // Reload the current WebView. - currentWebView.reload(); - } // Else do nothing because SDK < 21. + // Update the privacy icon. + updatePrivacyIcons(true); - // Consume the event. - return true; + // Display a snackbar. + if (cookieManager.acceptCookie()) { // First-party cookies are enabled. + Snackbar.make(webViewPager, R.string.first_party_cookies_enabled, Snackbar.LENGTH_SHORT).show(); + } else if (currentWebView.getSettings().getJavaScriptEnabled()) { // JavaScript is still enabled. + Snackbar.make(webViewPager, R.string.first_party_cookies_disabled, Snackbar.LENGTH_SHORT).show(); + } else { // Privacy mode. + Snackbar.make(webViewPager, R.string.privacy_mode, Snackbar.LENGTH_SHORT).show(); + } - case R.id.toggle_dom_storage: - // Toggle the status of domStorageEnabled. - currentWebView.getSettings().setDomStorageEnabled(!currentWebView.getSettings().getDomStorageEnabled()); + // Reload the current WebView. + currentWebView.reload(); - // Update the menu checkbox. - menuItem.setChecked(currentWebView.getSettings().getDomStorageEnabled()); + // Consume the event. + return true; + } else if (menuItemId == R.id.toggle_third_party_cookies) { // Third-party cookies. + // Only act if the API >= 21. Otherwise, there are no third-party cookie controls. + if (Build.VERSION.SDK_INT >= 21) { + // Toggle the status of thirdPartyCookiesEnabled. + cookieManager.setAcceptThirdPartyCookies(currentWebView, !cookieManager.acceptThirdPartyCookies(currentWebView)); - // Update the privacy icon. `true` refreshes the app bar icons. - updatePrivacyIcons(true); + // Update the menu checkbox. + menuItem.setChecked(cookieManager.acceptThirdPartyCookies(currentWebView)); // Display a snackbar. - if (currentWebView.getSettings().getDomStorageEnabled()) { - Snackbar.make(webViewPager, R.string.dom_storage_enabled, Snackbar.LENGTH_SHORT).show(); + if (cookieManager.acceptThirdPartyCookies(currentWebView)) { + Snackbar.make(webViewPager, R.string.third_party_cookies_enabled, Snackbar.LENGTH_SHORT).show(); } else { - Snackbar.make(webViewPager, R.string.dom_storage_disabled, Snackbar.LENGTH_SHORT).show(); + Snackbar.make(webViewPager, R.string.third_party_cookies_disabled, Snackbar.LENGTH_SHORT).show(); } // Reload the current WebView. currentWebView.reload(); + } - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.toggle_dom_storage) { // DOM storage. + // Toggle the status of domStorageEnabled. + currentWebView.getSettings().setDomStorageEnabled(!currentWebView.getSettings().getDomStorageEnabled()); - // Form data can be removed once the minimum API >= 26. - case R.id.toggle_save_form_data: - // Switch the status of saveFormDataEnabled. - currentWebView.getSettings().setSaveFormData(!currentWebView.getSettings().getSaveFormData()); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.getSettings().getDomStorageEnabled()); - // Update the menu checkbox. - menuItem.setChecked(currentWebView.getSettings().getSaveFormData()); - - // Display a snackbar. - if (currentWebView.getSettings().getSaveFormData()) { - Snackbar.make(webViewPager, R.string.form_data_enabled, Snackbar.LENGTH_SHORT).show(); - } else { - Snackbar.make(webViewPager, R.string.form_data_disabled, Snackbar.LENGTH_SHORT).show(); - } + // Update the privacy icon. + updatePrivacyIcons(true); - // Update the privacy icon. `true` runs `invalidateOptionsMenu` as the last step. - updatePrivacyIcons(true); + // Display a snackbar. + if (currentWebView.getSettings().getDomStorageEnabled()) { + Snackbar.make(webViewPager, R.string.dom_storage_enabled, Snackbar.LENGTH_SHORT).show(); + } else { + Snackbar.make(webViewPager, R.string.dom_storage_disabled, Snackbar.LENGTH_SHORT).show(); + } - // Reload the current WebView. - currentWebView.reload(); + // Reload the current WebView. + currentWebView.reload(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.toggle_save_form_data) { // Form data. This can be removed once the minimum API >= 26. + // Switch the status of saveFormDataEnabled. + currentWebView.getSettings().setSaveFormData(!currentWebView.getSettings().getSaveFormData()); - case R.id.clear_cookies: - Snackbar.make(webViewPager, R.string.cookies_deleted, Snackbar.LENGTH_LONG) - .setAction(R.string.undo, v -> { - // Do nothing because everything will be handled by `onDismissed()` below. - }) - .addCallback(new Snackbar.Callback() { - @SuppressLint("SwitchIntDef") // Ignore the lint warning about not handling the other possible events as they are covered by `default:`. - @Override - public void onDismissed(Snackbar snackbar, int event) { - if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. - // Delete the cookies, which command varies by SDK. - if (Build.VERSION.SDK_INT < 21) { - cookieManager.removeAllCookie(); - } else { - cookieManager.removeAllCookies(null); - } - } - } - }) - .show(); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.getSettings().getSaveFormData()); - // Consume the event. - return true; + // Display a snackbar. + if (currentWebView.getSettings().getSaveFormData()) { + Snackbar.make(webViewPager, R.string.form_data_enabled, Snackbar.LENGTH_SHORT).show(); + } else { + Snackbar.make(webViewPager, R.string.form_data_disabled, Snackbar.LENGTH_SHORT).show(); + } - case R.id.clear_dom_storage: - Snackbar.make(webViewPager, R.string.dom_storage_deleted, Snackbar.LENGTH_LONG) - .setAction(R.string.undo, v -> { - // Do nothing because everything will be handled by `onDismissed()` below. - }) - .addCallback(new Snackbar.Callback() { - @SuppressLint("SwitchIntDef") // Ignore the lint warning about not handling the other possible events as they are covered by `default:`. - @Override - public void onDismissed(Snackbar snackbar, int event) { - if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. - // Delete the DOM Storage. - WebStorage webStorage = WebStorage.getInstance(); - webStorage.deleteAllData(); - - // Initialize a handler to manually delete the DOM storage files and directories. - Handler deleteDomStorageHandler = new Handler(); - - // Setup a runnable to manually delete the DOM storage files and directories. - Runnable deleteDomStorageRunnable = () -> { - try { - // Get a handle for the runtime. - Runtime runtime = Runtime.getRuntime(); - - // Get the application's private data directory, which will be something like `/data/user/0/com.stoutner.privacybrowser.standard`, - // which links to `/data/data/com.stoutner.privacybrowser.standard`. - String privateDataDirectoryString = getApplicationInfo().dataDir; - - // A string array must be used because the directory contains a space and `Runtime.exec` will otherwise not escape the string correctly. - Process deleteLocalStorageProcess = runtime.exec(new String[]{"rm", "-rf", privateDataDirectoryString + "/app_webview/Local Storage/"}); - - // Multiple commands must be used because `Runtime.exec()` does not like `*`. - Process deleteIndexProcess = runtime.exec("rm -rf " + privateDataDirectoryString + "/app_webview/IndexedDB"); - Process deleteQuotaManagerProcess = runtime.exec("rm -f " + privateDataDirectoryString + "/app_webview/QuotaManager"); - Process deleteQuotaManagerJournalProcess = runtime.exec("rm -f " + privateDataDirectoryString + "/app_webview/QuotaManager-journal"); - Process deleteDatabasesProcess = runtime.exec("rm -rf " + privateDataDirectoryString + "/app_webview/databases"); - - // Wait for the processes to finish. - deleteLocalStorageProcess.waitFor(); - deleteIndexProcess.waitFor(); - deleteQuotaManagerProcess.waitFor(); - deleteQuotaManagerJournalProcess.waitFor(); - deleteDatabasesProcess.waitFor(); - } catch (Exception exception) { - // Do nothing if an error is thrown. - } - }; - - // Manually delete the DOM storage files after 200 milliseconds. - deleteDomStorageHandler.postDelayed(deleteDomStorageRunnable, 200); - } - } - }) - .show(); + // Update the privacy icon. + updatePrivacyIcons(true); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - // Form data can be remove once the minimum API >= 26. - case R.id.clear_form_data: - Snackbar.make(webViewPager, R.string.form_data_deleted, Snackbar.LENGTH_LONG) - .setAction(R.string.undo, v -> { - // Do nothing because everything will be handled by `onDismissed()` below. - }) - .addCallback(new Snackbar.Callback() { - @SuppressLint("SwitchIntDef") // Ignore the lint warning about not handling the other possible events as they are covered by `default:`. - @Override - public void onDismissed(Snackbar snackbar, int event) { - if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. - // Delete the form data. - WebViewDatabase mainWebViewDatabase = WebViewDatabase.getInstance(getApplicationContext()); - mainWebViewDatabase.clearFormData(); + // Consume the event. + return true; + } else if (menuItemId == R.id.clear_cookies) { // Clear cookies. + // Create a snackbar. + Snackbar.make(webViewPager, R.string.cookies_deleted, Snackbar.LENGTH_LONG) + .setAction(R.string.undo, v -> { + // Do nothing because everything will be handled by `onDismissed()` below. + }) + .addCallback(new Snackbar.Callback() { + @Override + public void onDismissed(Snackbar snackbar, int event) { + if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. + // Delete the cookies, which command varies by SDK. + if (Build.VERSION.SDK_INT < 21) { + cookieManager.removeAllCookie(); + } else { + cookieManager.removeAllCookies(null); } } - }) - .show(); - - // Consume the event. - return true; - - case R.id.easylist: - // Toggle the EasyList status. - currentWebView.enableBlocklist(NestedScrollWebView.EASYLIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYLIST)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYLIST)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.easyprivacy: - // Toggle the EasyPrivacy status. - currentWebView.enableBlocklist(NestedScrollWebView.EASYPRIVACY, !currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYPRIVACY)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYPRIVACY)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.fanboys_annoyance_list: - // Toggle Fanboy's Annoyance List status. - currentWebView.enableBlocklist(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - - // Update the staus of Fanboy's Social Blocking List. - MenuItem fanboysSocialBlockingListMenuItem = optionsMenu.findItem(R.id.fanboys_social_blocking_list); - fanboysSocialBlockingListMenuItem.setEnabled(!currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.fanboys_social_blocking_list: - // Toggle Fanboy's Social Blocking List status. - currentWebView.enableBlocklist(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.ultralist: - // Toggle the UltraList status. - currentWebView.enableBlocklist(NestedScrollWebView.ULTRALIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRALIST)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRALIST)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.ultraprivacy: - // Toggle the UltraPrivacy status. - currentWebView.enableBlocklist(NestedScrollWebView.ULTRAPRIVACY, !currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRAPRIVACY)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRAPRIVACY)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.block_all_third_party_requests: - //Toggle the third-party requests blocker status. - currentWebView.enableBlocklist(NestedScrollWebView.THIRD_PARTY_REQUESTS, !currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); - - // Update the menu checkbox. - menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.proxy_none: - // Update the proxy mode. - proxyMode = ProxyHelper.NONE; - - // Apply the proxy mode. - applyProxy(true); - - // Consume the event. - return true; - - case R.id.proxy_tor: - // Update the proxy mode. - proxyMode = ProxyHelper.TOR; - - // Apply the proxy mode. - applyProxy(true); - - // Consume the event. - return true; - - case R.id.proxy_i2p: - // Update the proxy mode. - proxyMode = ProxyHelper.I2P; - - // Apply the proxy mode. - applyProxy(true); - - // Consume the event. - return true; - - case R.id.proxy_custom: - // Update the proxy mode. - proxyMode = ProxyHelper.CUSTOM; - - // Apply the proxy mode. - applyProxy(true); - - // Consume the event. - return true; - - case R.id.user_agent_privacy_browser: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[0]); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.user_agent_webview_default: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(""); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.user_agent_firefox_on_android: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[2]); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.user_agent_chrome_on_android: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[3]); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.user_agent_safari_on_ios: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[4]); - - // Reload the current WebView. - currentWebView.reload(); - - // Consume the event. - return true; - - case R.id.user_agent_firefox_on_linux: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[5]); + } + }) + .show(); - // Reload the current WebView. - currentWebView.reload(); + // Consume the event. + return true; + } else if (menuItemId == R.id.clear_dom_storage) { // Clear DOM storage. + // Create a snackbar. + Snackbar.make(webViewPager, R.string.dom_storage_deleted, Snackbar.LENGTH_LONG) + .setAction(R.string.undo, v -> { + // Do nothing because everything will be handled by `onDismissed()` below. + }) + .addCallback(new Snackbar.Callback() { + @Override + public void onDismissed(Snackbar snackbar, int event) { + if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. + // Delete the DOM Storage. + WebStorage webStorage = WebStorage.getInstance(); + webStorage.deleteAllData(); + + // Initialize a handler to manually delete the DOM storage files and directories. + Handler deleteDomStorageHandler = new Handler(); + + // Setup a runnable to manually delete the DOM storage files and directories. + Runnable deleteDomStorageRunnable = () -> { + try { + // Get a handle for the runtime. + Runtime runtime = Runtime.getRuntime(); + + // Get the application's private data directory, which will be something like `/data/user/0/com.stoutner.privacybrowser.standard`, + // which links to `/data/data/com.stoutner.privacybrowser.standard`. + String privateDataDirectoryString = getApplicationInfo().dataDir; + + // A string array must be used because the directory contains a space and `Runtime.exec` will otherwise not escape the string correctly. + Process deleteLocalStorageProcess = runtime.exec(new String[]{"rm", "-rf", privateDataDirectoryString + "/app_webview/Local Storage/"}); + + // Multiple commands must be used because `Runtime.exec()` does not like `*`. + Process deleteIndexProcess = runtime.exec("rm -rf " + privateDataDirectoryString + "/app_webview/IndexedDB"); + Process deleteQuotaManagerProcess = runtime.exec("rm -f " + privateDataDirectoryString + "/app_webview/QuotaManager"); + Process deleteQuotaManagerJournalProcess = runtime.exec("rm -f " + privateDataDirectoryString + "/app_webview/QuotaManager-journal"); + Process deleteDatabasesProcess = runtime.exec("rm -rf " + privateDataDirectoryString + "/app_webview/databases"); + + // Wait for the processes to finish. + deleteLocalStorageProcess.waitFor(); + deleteIndexProcess.waitFor(); + deleteQuotaManagerProcess.waitFor(); + deleteQuotaManagerJournalProcess.waitFor(); + deleteDatabasesProcess.waitFor(); + } catch (Exception exception) { + // Do nothing if an error is thrown. + } + }; - // Consume the event. - return true; + // Manually delete the DOM storage files after 200 milliseconds. + deleteDomStorageHandler.postDelayed(deleteDomStorageRunnable, 200); + } + } + }) + .show(); - case R.id.user_agent_chromium_on_linux: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[6]); + // Consume the event. + return true; + } else if (menuItemId == R.id.clear_form_data) { // Clear form data. This can be remove once the minimum API >= 26. + // Create a snackbar. + Snackbar.make(webViewPager, R.string.form_data_deleted, Snackbar.LENGTH_LONG) + .setAction(R.string.undo, v -> { + // Do nothing because everything will be handled by `onDismissed()` below. + }) + .addCallback(new Snackbar.Callback() { + @Override + public void onDismissed(Snackbar snackbar, int event) { + if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. + // Get a handle for the webView database. + WebViewDatabase webViewDatabase = WebViewDatabase.getInstance(getApplicationContext()); + + // Delete the form data. + webViewDatabase.clearFormData(); + } + } + }) + .show(); - // Reload the current WebView. - currentWebView.reload(); + // Consume the event. + return true; + } else if (menuItemId == R.id.easylist) { // EasyList. + // Toggle the EasyList status. + currentWebView.enableBlocklist(NestedScrollWebView.EASYLIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYLIST)); - // Consume the event. - return true; + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYLIST)); - case R.id.user_agent_firefox_on_windows: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[7]); + // Reload the current WebView. + currentWebView.reload(); - // Reload the current WebView. - currentWebView.reload(); + // Consume the event. + return true; + } else if (menuItemId == R.id.easyprivacy) { // EasyPrivacy. + // Toggle the EasyPrivacy status. + currentWebView.enableBlocklist(NestedScrollWebView.EASYPRIVACY, !currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYPRIVACY)); - // Consume the event. - return true; + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.EASYPRIVACY)); - case R.id.user_agent_chrome_on_windows: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[8]); + // Reload the current WebView. + currentWebView.reload(); - // Reload the current WebView. - currentWebView.reload(); + // Consume the event. + return true; + } else if (menuItemId == R.id.fanboys_annoyance_list) { // Fanboy's Annoyance List. + // Toggle Fanboy's Annoyance List status. + currentWebView.enableBlocklist(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - // Consume the event. - return true; + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - case R.id.user_agent_edge_on_windows: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[9]); + // Get a handle for the Fanboy's Social Block List menu item. + MenuItem fanboysSocialBlockingListMenuItem = optionsMenu.findItem(R.id.fanboys_social_blocking_list); - // Reload the current WebView. - currentWebView.reload(); + // Update the staus of Fanboy's Social Blocking List. + fanboysSocialBlockingListMenuItem.setEnabled(!currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_ANNOYANCE_LIST)); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.user_agent_internet_explorer_on_windows: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[10]); + // Consume the event. + return true; + } else if (menuItemId == R.id.fanboys_social_blocking_list) { // Fanboy's Social Blocking List. + // Toggle Fanboy's Social Blocking List status. + currentWebView.enableBlocklist(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST)); - // Reload the current WebView. - currentWebView.reload(); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.FANBOYS_SOCIAL_BLOCKING_LIST)); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.user_agent_safari_on_macos: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[11]); + // Consume the event. + return true; + } else if (menuItemId == R.id.ultralist) { // UltraList. + // Toggle the UltraList status. + currentWebView.enableBlocklist(NestedScrollWebView.ULTRALIST, !currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRALIST)); - // Reload the current WebView. - currentWebView.reload(); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRALIST)); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.user_agent_custom: - // Update the user agent. - currentWebView.getSettings().setUserAgentString(sharedPreferences.getString("custom_user_agent", getString(R.string.custom_user_agent_default_value))); + // Consume the event. + return true; + } else if (menuItemId == R.id.ultraprivacy) { // UltraPrivacy. + // Toggle the UltraPrivacy status. + currentWebView.enableBlocklist(NestedScrollWebView.ULTRAPRIVACY, !currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRAPRIVACY)); - // Reload the current WebView. - currentWebView.reload(); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.ULTRAPRIVACY)); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.font_size: - // Instantiate the font size dialog. - DialogFragment fontSizeDialogFragment = FontSizeDialog.displayDialog(currentWebView.getSettings().getTextZoom()); + // Consume the event. + return true; + } else if (menuItemId == R.id.block_all_third_party_requests) { // Block all third-party requests. + //Toggle the third-party requests blocker status. + currentWebView.enableBlocklist(NestedScrollWebView.THIRD_PARTY_REQUESTS, !currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); - // Show the font size dialog. - fontSizeDialogFragment.show(getSupportFragmentManager(), getString(R.string.font_size)); + // Update the menu checkbox. + menuItem.setChecked(currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.swipe_to_refresh: - // Toggle the stored status of swipe to refresh. - currentWebView.setSwipeToRefresh(!currentWebView.getSwipeToRefresh()); + // Consume the event. + return true; + } else if (menuItemId == R.id.proxy_none) { // Proxy - None. + // Update the proxy mode. + proxyMode = ProxyHelper.NONE; - // Get a handle for the swipe refresh layout. - SwipeRefreshLayout swipeRefreshLayout = findViewById(R.id.swiperefreshlayout); + // Apply the proxy mode. + applyProxy(true); - // Update the swipe refresh layout. - if (currentWebView.getSwipeToRefresh()) { // Swipe to refresh is enabled. - // Only enable the swipe refresh layout if the WebView is scrolled to the top. It is updated every time the scroll changes. - swipeRefreshLayout.setEnabled(currentWebView.getY() == 0); - } else { // Swipe to refresh is disabled. - // Disable the swipe refresh layout. - swipeRefreshLayout.setEnabled(false); - } + // Consume the event. + return true; + } else if (menuItemId == R.id.proxy_tor) { // Proxy - Tor. + // Update the proxy mode. + proxyMode = ProxyHelper.TOR; - // Consume the event. - return true; + // Apply the proxy mode. + applyProxy(true); - case R.id.wide_viewport: - // Toggle the viewport. - currentWebView.getSettings().setUseWideViewPort(!currentWebView.getSettings().getUseWideViewPort()); + // Consume the event. + return true; + } else if (menuItemId == R.id.proxy_i2p) { // Proxy - I2P. + // Update the proxy mode. + proxyMode = ProxyHelper.I2P; - // Consume the event. - return true; + // Apply the proxy mode. + applyProxy(true); - case R.id.display_images: - if (currentWebView.getSettings().getLoadsImagesAutomatically()) { // Images are currently loaded automatically. - // Disable loading of images. - currentWebView.getSettings().setLoadsImagesAutomatically(false); + // Consume the event. + return true; + } else if (menuItemId == R.id.proxy_custom) { // Proxy - Custom. + // Update the proxy mode. + proxyMode = ProxyHelper.CUSTOM; - // Reload the website to remove existing images. - currentWebView.reload(); - } else { // Images are not currently loaded automatically. - // Enable loading of images. Missing images will be loaded without the need for a reload. - currentWebView.getSettings().setLoadsImagesAutomatically(true); - } + // Apply the proxy mode. + applyProxy(true); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_privacy_browser) { // User Agent - Privacy Browser. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[0]); - case R.id.dark_webview: - // Check to see if dark WebView is supported by this WebView. - if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { - // Toggle the dark WebView setting. - if (WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON) { // Dark WebView is currently enabled. - // Turn off dark WebView. - WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF); - } else { // Dark WebView is currently disabled. - // turn on dark WebView. - WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); - } - } + // Reload the current WebView. + currentWebView.reload(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_webview_default) { // User Agent - WebView Default. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(""); - case R.id.find_on_page: - // Get a handle for the views. - Toolbar toolbar = findViewById(R.id.toolbar); - LinearLayout findOnPageLinearLayout = findViewById(R.id.find_on_page_linearlayout); - EditText findOnPageEditText = findViewById(R.id.find_on_page_edittext); + // Reload the current WebView. + currentWebView.reload(); - // Set the minimum height of the find on page linear layout to match the toolbar. - findOnPageLinearLayout.setMinimumHeight(toolbar.getHeight()); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_firefox_on_android) { // User Agent - Firefox on Android. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[2]); - // Hide the toolbar. - toolbar.setVisibility(View.GONE); + // Reload the current WebView. + currentWebView.reload(); - // Show the find on page linear layout. - findOnPageLinearLayout.setVisibility(View.VISIBLE); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_chrome_on_android) { // User Agent - Chrome on Android. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[3]); - // Display the keyboard. The app must wait 200 ms before running the command to work around a bug in Android. - // http://stackoverflow.com/questions/5520085/android-show-softkeyboard-with-showsoftinput-is-not-working - findOnPageEditText.postDelayed(() -> { - // Set the focus on `findOnPageEditText`. - findOnPageEditText.requestFocus(); + // Reload the current WebView. + currentWebView.reload(); - // Get a handle for the input method manager. - InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_safari_on_ios) { // User Agent - Safari on iOS. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[4]); - // Remove the lint warning below that the input method manager might be null. - assert inputMethodManager != null; + // Reload the current WebView. + currentWebView.reload(); - // Display the keyboard. `0` sets no input flags. - inputMethodManager.showSoftInput(findOnPageEditText, 0); - }, 200); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_firefox_on_linux) { // User Agent - Firefox on Linux. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[5]); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.print: - // Get a print manager instance. - PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_chromium_on_linux) { // User Agent - Chromium on Linux. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[6]); - // Remove the lint error below that print manager might be null. - assert printManager != null; + // Reload the current WebView. + currentWebView.reload(); - // Create a print document adapter from the current WebView. - PrintDocumentAdapter printDocumentAdapter = currentWebView.createPrintDocumentAdapter(); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_firefox_on_windows) { // User Agent - Firefox on Windows. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[7]); - // Print the document. - printManager.print(getString(R.string.privacy_browser_web_page), printDocumentAdapter, null); + // Reload the current WebView. + currentWebView.reload(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_chrome_on_windows) { // User Agent - Chrome on Windows. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[8]); - case R.id.save_url: - // Prepare the save dialog. The dialog will be displayed once the file size and the content disposition have been acquired. - new PrepareSaveDialog(this, this, getSupportFragmentManager(), StoragePermissionDialog.SAVE_URL, currentWebView.getSettings().getUserAgentString(), - currentWebView.getAcceptFirstPartyCookies()).execute(currentWebView.getCurrentUrl()); + // Reload the current WebView. + currentWebView.reload(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_edge_on_windows) { // User Agent - Edge on Windows. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[9]); - case R.id.save_archive: - // Instantiate the save dialog. - DialogFragment saveArchiveFragment = SaveWebpageDialog.saveWebpage(StoragePermissionDialog.SAVE_ARCHIVE, null, null, getString(R.string.webpage_mht), null, - false); + // Reload the current WebView. + currentWebView.reload(); - // Show the save dialog. It must be named `save_dialog` so that the file picker can update the file name. - saveArchiveFragment.show(getSupportFragmentManager(), getString(R.string.save_dialog)); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_internet_explorer_on_windows) { // User Agent - Internet Explorer on Windows. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[10]); - // Consume the event. - return true; + // Reload the current WebView. + currentWebView.reload(); - case R.id.save_image: - // Instantiate the save dialog. - DialogFragment saveImageFragment = SaveWebpageDialog.saveWebpage(StoragePermissionDialog.SAVE_IMAGE, null, null, getString(R.string.webpage_png), null, - false); + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_safari_on_macos) { // User Agent - Safari on macOS. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(getResources().getStringArray(R.array.user_agent_data)[11]); - // Show the save dialog. It must be named `save_dialog` so that the file picker can update the file name. - saveImageFragment.show(getSupportFragmentManager(), getString(R.string.save_dialog)); + // Reload the current WebView. + currentWebView.reload(); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.user_agent_custom) { // User Agent - Custom. + // Update the user agent. + currentWebView.getSettings().setUserAgentString(sharedPreferences.getString("custom_user_agent", getString(R.string.custom_user_agent_default_value))); - case R.id.add_to_homescreen: - // Instantiate the create home screen shortcut dialog. - DialogFragment createHomeScreenShortcutDialogFragment = CreateHomeScreenShortcutDialog.createDialog(currentWebView.getTitle(), currentWebView.getUrl(), - currentWebView.getFavoriteOrDefaultIcon()); + // Reload the current WebView. + currentWebView.reload(); - // Show the create home screen shortcut dialog. - createHomeScreenShortcutDialogFragment.show(getSupportFragmentManager(), getString(R.string.create_shortcut)); + // Consume the event. + return true; + } else if (menuItemId == R.id.font_size) { // Font size. + // Instantiate the font size dialog. + DialogFragment fontSizeDialogFragment = FontSizeDialog.displayDialog(currentWebView.getSettings().getTextZoom()); - // Consume the event. - return true; + // Show the font size dialog. + fontSizeDialogFragment.show(getSupportFragmentManager(), getString(R.string.font_size)); - case R.id.view_source: - // Create an intent to launch the view source activity. - Intent viewSourceIntent = new Intent(this, ViewSourceActivity.class); + // Consume the event. + return true; + } else if (menuItemId == R.id.swipe_to_refresh) { // Swipe to refresh. + // Toggle the stored status of swipe to refresh. + currentWebView.setSwipeToRefresh(!currentWebView.getSwipeToRefresh()); - // Add the variables to the intent. - viewSourceIntent.putExtra("user_agent", currentWebView.getSettings().getUserAgentString()); - viewSourceIntent.putExtra("current_url", currentWebView.getUrl()); + // Get a handle for the swipe refresh layout. + SwipeRefreshLayout swipeRefreshLayout = findViewById(R.id.swiperefreshlayout); - // Make it so. - startActivity(viewSourceIntent); + // Update the swipe refresh layout. + if (currentWebView.getSwipeToRefresh()) { // Swipe to refresh is enabled. + // Only enable the swipe refresh layout if the WebView is scrolled to the top. It is updated every time the scroll changes. + swipeRefreshLayout.setEnabled(currentWebView.getY() == 0); + } else { // Swipe to refresh is disabled. + // Disable the swipe refresh layout. + swipeRefreshLayout.setEnabled(false); + } - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.wide_viewport) { // Wide viewport. + // Toggle the viewport. + currentWebView.getSettings().setUseWideViewPort(!currentWebView.getSettings().getUseWideViewPort()); - case R.id.share_url: - // Setup the share string. - String shareString = currentWebView.getTitle() + " – " + currentWebView.getUrl(); + // Consume the event. + return true; + } else if (menuItemId == R.id.display_images) { // Display images. + // Toggle the displaying of images. + if (currentWebView.getSettings().getLoadsImagesAutomatically()) { // Images are currently loaded automatically. + // Disable loading of images. + currentWebView.getSettings().setLoadsImagesAutomatically(false); - // Create the share intent. - Intent shareIntent = new Intent(Intent.ACTION_SEND); + // Reload the website to remove existing images. + currentWebView.reload(); + } else { // Images are not currently loaded automatically. + // Enable loading of images. Missing images will be loaded without the need for a reload. + currentWebView.getSettings().setLoadsImagesAutomatically(true); + } - // Add the share string to the intent. - shareIntent.putExtra(Intent.EXTRA_TEXT, shareString); + // 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 (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { + // Toggle the dark WebView setting. + if (WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON) { // Dark WebView is currently enabled. + // Turn off dark WebView. + WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF); + } else { // Dark WebView is currently disabled. + // Turn on dark WebView. + WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); + } + } - // Set the MIME type. - shareIntent.setType("text/plain"); + // Consume the event. + return true; + } else if (menuItemId == R.id.find_on_page) { // Find on page. + // Get a handle for the views. + Toolbar toolbar = findViewById(R.id.toolbar); + LinearLayout findOnPageLinearLayout = findViewById(R.id.find_on_page_linearlayout); + EditText findOnPageEditText = findViewById(R.id.find_on_page_edittext); - // Set the intent to open in a new task. - shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // Set the minimum height of the find on page linear layout to match the toolbar. + findOnPageLinearLayout.setMinimumHeight(toolbar.getHeight()); - // Make it so. - startActivity(Intent.createChooser(shareIntent, getString(R.string.share_url))); + // Hide the toolbar. + toolbar.setVisibility(View.GONE); - // Consume the event. - return true; + // Show the find on page linear layout. + findOnPageLinearLayout.setVisibility(View.VISIBLE); - case R.id.open_with_app: - // Open the URL with an outside app. - openWithApp(currentWebView.getUrl()); + // Display the keyboard. The app must wait 200 ms before running the command to work around a bug in Android. + // http://stackoverflow.com/questions/5520085/android-show-softkeyboard-with-showsoftinput-is-not-working + findOnPageEditText.postDelayed(() -> { + // Set the focus on the find on page edit text. + findOnPageEditText.requestFocus(); - // Consume the event. - return true; + // Get a handle for the input method manager. + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - case R.id.open_with_browser: - // Open the URL with an outside browser. - openWithBrowser(currentWebView.getUrl()); + // Remove the lint warning below that the input method manager might be null. + assert inputMethodManager != null; - // Consume the event. - return true; + // Display the keyboard. `0` sets no input flags. + inputMethodManager.showSoftInput(findOnPageEditText, 0); + }, 200); - case R.id.add_or_edit_domain: - if (currentWebView.getDomainSettingsApplied()) { // Edit the current domain settings. - // Reapply the domain settings on returning to `MainWebViewActivity`. - reapplyDomainSettingsOnRestart = true; - - // Create an intent to launch the domains activity. - Intent domainsIntent = new Intent(this, DomainsActivity.class); - - // Add the extra information to the intent. - domainsIntent.putExtra("load_domain", currentWebView.getDomainSettingsDatabaseId()); - domainsIntent.putExtra("close_on_back", true); - domainsIntent.putExtra("current_url", currentWebView.getUrl()); - - // Get the current certificate. - SslCertificate sslCertificate = currentWebView.getCertificate(); - - // Check to see if the SSL certificate is populated. - if (sslCertificate != null) { - // Extract the certificate to strings. - String issuedToCName = sslCertificate.getIssuedTo().getCName(); - String issuedToOName = sslCertificate.getIssuedTo().getOName(); - String issuedToUName = sslCertificate.getIssuedTo().getUName(); - String issuedByCName = sslCertificate.getIssuedBy().getCName(); - String issuedByOName = sslCertificate.getIssuedBy().getOName(); - String issuedByUName = sslCertificate.getIssuedBy().getUName(); - long startDateLong = sslCertificate.getValidNotBeforeDate().getTime(); - long endDateLong = sslCertificate.getValidNotAfterDate().getTime(); - - // Add the certificate to the intent. - domainsIntent.putExtra("ssl_issued_to_cname", issuedToCName); - domainsIntent.putExtra("ssl_issued_to_oname", issuedToOName); - domainsIntent.putExtra("ssl_issued_to_uname", issuedToUName); - domainsIntent.putExtra("ssl_issued_by_cname", issuedByCName); - domainsIntent.putExtra("ssl_issued_by_oname", issuedByOName); - domainsIntent.putExtra("ssl_issued_by_uname", issuedByUName); - domainsIntent.putExtra("ssl_start_date", startDateLong); - domainsIntent.putExtra("ssl_end_date", endDateLong); - } + // Consume the event. + return true; + } else if (menuItemId == R.id.print) { // Print. + // Get a print manager instance. + PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); - // Check to see if the current IP addresses have been received. - if (currentWebView.hasCurrentIpAddresses()) { - // Add the current IP addresses to the intent. - domainsIntent.putExtra("current_ip_addresses", currentWebView.getCurrentIpAddresses()); - } + // Remove the lint error below that print manager might be null. + assert printManager != null; - // Make it so. - startActivity(domainsIntent); - } else { // Add a new domain. - // Apply the new domain settings on returning to `MainWebViewActivity`. - reapplyDomainSettingsOnRestart = true; - - // Get the current domain - Uri currentUri = Uri.parse(currentWebView.getUrl()); - String currentDomain = currentUri.getHost(); - - // Initialize the database handler. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`. - DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(this, null, null, 0); - - // Create the domain and store the database ID. - int newDomainDatabaseId = domainsDatabaseHelper.addDomain(currentDomain); - - // Create an intent to launch the domains activity. - Intent domainsIntent = new Intent(this, DomainsActivity.class); - - // Add the extra information to the intent. - domainsIntent.putExtra("load_domain", newDomainDatabaseId); - domainsIntent.putExtra("close_on_back", true); - domainsIntent.putExtra("current_url", currentWebView.getUrl()); - - // Get the current certificate. - SslCertificate sslCertificate = currentWebView.getCertificate(); - - // Check to see if the SSL certificate is populated. - if (sslCertificate != null) { - // Extract the certificate to strings. - String issuedToCName = sslCertificate.getIssuedTo().getCName(); - String issuedToOName = sslCertificate.getIssuedTo().getOName(); - String issuedToUName = sslCertificate.getIssuedTo().getUName(); - String issuedByCName = sslCertificate.getIssuedBy().getCName(); - String issuedByOName = sslCertificate.getIssuedBy().getOName(); - String issuedByUName = sslCertificate.getIssuedBy().getUName(); - long startDateLong = sslCertificate.getValidNotBeforeDate().getTime(); - long endDateLong = sslCertificate.getValidNotAfterDate().getTime(); - - // Add the certificate to the intent. - domainsIntent.putExtra("ssl_issued_to_cname", issuedToCName); - domainsIntent.putExtra("ssl_issued_to_oname", issuedToOName); - domainsIntent.putExtra("ssl_issued_to_uname", issuedToUName); - domainsIntent.putExtra("ssl_issued_by_cname", issuedByCName); - domainsIntent.putExtra("ssl_issued_by_oname", issuedByOName); - domainsIntent.putExtra("ssl_issued_by_uname", issuedByUName); - domainsIntent.putExtra("ssl_start_date", startDateLong); - domainsIntent.putExtra("ssl_end_date", endDateLong); - } + // Create a print document adapter from the current WebView. + PrintDocumentAdapter printDocumentAdapter = currentWebView.createPrintDocumentAdapter(); - // Check to see if the current IP addresses have been received. - if (currentWebView.hasCurrentIpAddresses()) { - // Add the current IP addresses to the intent. - domainsIntent.putExtra("current_ip_addresses", currentWebView.getCurrentIpAddresses()); - } + // Print the document. + printManager.print(getString(R.string.privacy_browser_web_page), printDocumentAdapter, null); - // Make it so. - startActivity(domainsIntent); - } + // Consume the event. + return true; + } else if (menuItemId == R.id.save_url) { // Save URL. + // Prepare the save dialog. The dialog will be displayed once the file size and the content disposition have been acquired. + new PrepareSaveDialog(this, this, getSupportFragmentManager(), StoragePermissionDialog.SAVE_URL, currentWebView.getSettings().getUserAgentString(), + currentWebView.getAcceptFirstPartyCookies()).execute(currentWebView.getCurrentUrl()); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.save_archive) { // Save archive. + // Instantiate the save dialog. + DialogFragment saveArchiveFragment = SaveWebpageDialog.saveWebpage(StoragePermissionDialog.SAVE_ARCHIVE, null, null, getString(R.string.webpage_mht), null, + false); - case R.id.ad_consent: - // Instantiate the ad consent dialog. - DialogFragment adConsentDialogFragment = new AdConsentDialog(); + // Show the save dialog. It must be named `save_dialog` so that the file picker can update the file name. + saveArchiveFragment.show(getSupportFragmentManager(), getString(R.string.save_dialog)); - // Display the ad consent dialog. - adConsentDialogFragment.show(getSupportFragmentManager(), getString(R.string.ad_consent)); + // Consume the event. + return true; + } else if (menuItemId == R.id.save_image) { // Save image. + // Instantiate the save dialog. + DialogFragment saveImageFragment = SaveWebpageDialog.saveWebpage(StoragePermissionDialog.SAVE_IMAGE, null, null, getString(R.string.webpage_png), null, + false); - // Consume the event. - return true; + // Show the save dialog. It must be named `save_dialog` so that the file picker can update the file name. + saveImageFragment.show(getSupportFragmentManager(), getString(R.string.save_dialog)); - default: - // Don't consume the event. - return super.onOptionsItemSelected(menuItem); - } - } + // Consume the event. + return true; + } else if (menuItemId == R.id.add_to_homescreen) { // Add to homescreen. + // Instantiate the create home screen shortcut dialog. + DialogFragment createHomeScreenShortcutDialogFragment = CreateHomeScreenShortcutDialog.createDialog(currentWebView.getTitle(), currentWebView.getUrl(), + currentWebView.getFavoriteOrDefaultIcon()); - // removeAllCookies is deprecated, but it is required for API < 21. - @Override - public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { - // Get the menu item ID. - int menuItemId = menuItem.getItemId(); + // Show the create home screen shortcut dialog. + createHomeScreenShortcutDialogFragment.show(getSupportFragmentManager(), getString(R.string.create_shortcut)); - // Get a handle for the shared preferences. - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + // Consume the event. + return true; + } else if (menuItemId == R.id.view_source) { // View source. + // Create an intent to launch the view source activity. + Intent viewSourceIntent = new Intent(this, ViewSourceActivity.class); - // Run the commands that correspond to the selected menu item. - switch (menuItemId) { - case R.id.clear_and_exit: - // Clear and exit Privacy Browser. - clearAndExit(); - break; + // Add the variables to the intent. + viewSourceIntent.putExtra("user_agent", currentWebView.getSettings().getUserAgentString()); + viewSourceIntent.putExtra("current_url", currentWebView.getUrl()); - case R.id.home: - // Load the homepage. - loadUrl(currentWebView, sharedPreferences.getString("homepage", getString(R.string.homepage_default_value))); - break; + // Make it so. + startActivity(viewSourceIntent); - case R.id.back: - if (currentWebView.canGoBack()) { - // Get the current web back forward list. - WebBackForwardList webBackForwardList = currentWebView.copyBackForwardList(); + // Consume the event. + return true; + } else if (menuItemId == R.id.share_url) { // Share URL. + // Setup the share string. + String shareString = currentWebView.getTitle() + " – " + currentWebView.getUrl(); - // Get the previous entry URL. - String previousUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() - 1).getUrl(); + // Create the share intent. + Intent shareIntent = new Intent(Intent.ACTION_SEND); - // Apply the domain settings. - applyDomainSettings(currentWebView, previousUrl, false, false, false); + // Add the share string to the intent. + shareIntent.putExtra(Intent.EXTRA_TEXT, shareString); - // Load the previous website in the history. - currentWebView.goBack(); - } - break; + // Set the MIME type. + shareIntent.setType("text/plain"); - case R.id.forward: - if (currentWebView.canGoForward()) { - // Get the current web back forward list. - WebBackForwardList webBackForwardList = currentWebView.copyBackForwardList(); + // Set the intent to open in a new task. + shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - // Get the next entry URL. - String nextUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() + 1).getUrl(); + // Make it so. + startActivity(Intent.createChooser(shareIntent, getString(R.string.share_url))); - // Apply the domain settings. - applyDomainSettings(currentWebView, nextUrl, false, false, false); + // Consume the event. + return true; + } else if (menuItemId == R.id.open_with_app) { // Open with app. + // Open the URL with an outside app. + openWithApp(currentWebView.getUrl()); - // Load the next website in the history. - currentWebView.goForward(); - } - break; + // Consume the event. + return true; + } else if (menuItemId == R.id.open_with_browser) { // Open with browser. + // Open the URL with an outside browser. + openWithBrowser(currentWebView.getUrl()); - case R.id.history: - // Instantiate the URL history dialog. - DialogFragment urlHistoryDialogFragment = UrlHistoryDialog.loadBackForwardList(currentWebView.getWebViewFragmentId()); + // Consume the event. + return true; + } else if (menuItemId == R.id.add_or_edit_domain) { // Add or edit domain. + // Check if domain settings currently exist. + if (currentWebView.getDomainSettingsApplied()) { // Edit the current domain settings. + // Reapply the domain settings on returning to `MainWebViewActivity`. + reapplyDomainSettingsOnRestart = true; - // Show the URL history dialog. - urlHistoryDialogFragment.show(getSupportFragmentManager(), getString(R.string.history)); - break; + // Create an intent to launch the domains activity. + Intent domainsIntent = new Intent(this, DomainsActivity.class); - case R.id.open: - // Instantiate the open file dialog. - DialogFragment openDialogFragment = new OpenDialog(); + // Add the extra information to the intent. + domainsIntent.putExtra("load_domain", currentWebView.getDomainSettingsDatabaseId()); + domainsIntent.putExtra("close_on_back", true); + domainsIntent.putExtra("current_url", currentWebView.getUrl()); - // Show the open file dialog. - openDialogFragment.show(getSupportFragmentManager(), getString(R.string.open)); - break; + // Get the current certificate. + SslCertificate sslCertificate = currentWebView.getCertificate(); - case R.id.requests: - // Populate the resource requests. - RequestsActivity.resourceRequests = currentWebView.getResourceRequests(); + // Check to see if the SSL certificate is populated. + if (sslCertificate != null) { + // Extract the certificate to strings. + String issuedToCName = sslCertificate.getIssuedTo().getCName(); + String issuedToOName = sslCertificate.getIssuedTo().getOName(); + String issuedToUName = sslCertificate.getIssuedTo().getUName(); + String issuedByCName = sslCertificate.getIssuedBy().getCName(); + String issuedByOName = sslCertificate.getIssuedBy().getOName(); + String issuedByUName = sslCertificate.getIssuedBy().getUName(); + long startDateLong = sslCertificate.getValidNotBeforeDate().getTime(); + long endDateLong = sslCertificate.getValidNotAfterDate().getTime(); - // Create an intent to launch the Requests activity. - Intent requestsIntent = new Intent(this, RequestsActivity.class); + // Add the certificate to the intent. + domainsIntent.putExtra("ssl_issued_to_cname", issuedToCName); + domainsIntent.putExtra("ssl_issued_to_oname", issuedToOName); + domainsIntent.putExtra("ssl_issued_to_uname", issuedToUName); + domainsIntent.putExtra("ssl_issued_by_cname", issuedByCName); + domainsIntent.putExtra("ssl_issued_by_oname", issuedByOName); + domainsIntent.putExtra("ssl_issued_by_uname", issuedByUName); + domainsIntent.putExtra("ssl_start_date", startDateLong); + domainsIntent.putExtra("ssl_end_date", endDateLong); + } - // Add the block third-party requests status to the intent. - requestsIntent.putExtra("block_all_third_party_requests", currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); + // Check to see if the current IP addresses have been received. + if (currentWebView.hasCurrentIpAddresses()) { + // Add the current IP addresses to the intent. + domainsIntent.putExtra("current_ip_addresses", currentWebView.getCurrentIpAddresses()); + } // Make it so. - startActivity(requestsIntent); - break; - - case R.id.downloads: - // Launch the system Download Manager. - Intent downloadManagerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); + startActivity(domainsIntent); + } else { // Add a new domain. + // Apply the new domain settings on returning to `MainWebViewActivity`. + reapplyDomainSettingsOnRestart = true; - // Launch as a new task so that Download Manager and Privacy Browser show as separate windows in the recent tasks list. - downloadManagerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // Get the current domain + Uri currentUri = Uri.parse(currentWebView.getUrl()); + String currentDomain = currentUri.getHost(); - // Make it so. - startActivity(downloadManagerIntent); - break; + // Initialize the database handler. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`. + DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(this, null, null, 0); - case R.id.domains: - // Set the flag to reapply the domain settings on restart when returning from Domain Settings. - reapplyDomainSettingsOnRestart = true; + // Create the domain and store the database ID. + int newDomainDatabaseId = domainsDatabaseHelper.addDomain(currentDomain); - // Launch the domains activity. + // Create an intent to launch the domains activity. Intent domainsIntent = new Intent(this, DomainsActivity.class); // Add the extra information to the intent. + domainsIntent.putExtra("load_domain", newDomainDatabaseId); + domainsIntent.putExtra("close_on_back", true); domainsIntent.putExtra("current_url", currentWebView.getUrl()); // Get the current certificate. @@ -2049,52 +1844,189 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Make it so. startActivity(domainsIntent); - break; + } - case R.id.settings: - // Set the flag to reapply app settings on restart when returning from Settings. - reapplyAppSettingsOnRestart = true; + // Consume the event. + return true; + } else if (menuItemId == R.id.ad_consent) { // Ad consent. + // Instantiate the ad consent dialog. + DialogFragment adConsentDialogFragment = new AdConsentDialog(); - // Set the flag to reapply the domain settings on restart when returning from Settings. - reapplyDomainSettingsOnRestart = true; + // Display the ad consent dialog. + adConsentDialogFragment.show(getSupportFragmentManager(), getString(R.string.ad_consent)); - // Launch the settings activity. - Intent settingsIntent = new Intent(this, SettingsActivity.class); - startActivity(settingsIntent); - break; + // Consume the event. + return true; + } else { // There is no match with the options menu. Pass the event up to the parent method. + // Don't consume the event. + return super.onOptionsItemSelected(menuItem); + } + } - case R.id.import_export: - // Launch the import/export activity. - Intent importExportIntent = new Intent (this, ImportExportActivity.class); - startActivity(importExportIntent); - break; + // removeAllCookies is deprecated, but it is required for API < 21. + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { + // Get a handle for the shared preferences. + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - case R.id.logcat: - // Launch the logcat activity. - Intent logcatIntent = new Intent(this, LogcatActivity.class); - startActivity(logcatIntent); - break; + // Get the menu item ID. + int menuItemId = menuItem.getItemId(); - case R.id.guide: - // Launch `GuideActivity`. - Intent guideIntent = new Intent(this, GuideActivity.class); - startActivity(guideIntent); - break; + // Run the commands that correspond to the selected menu item. + if (menuItemId == R.id.clear_and_exit) { // Clear and exit. + // Clear and exit Privacy Browser. + clearAndExit(); + } else if (menuItemId == R.id.home) { // Home. + // Load the homepage. + loadUrl(currentWebView, sharedPreferences.getString("homepage", getString(R.string.homepage_default_value))); + } else if (menuItemId == R.id.back) { // Back. + // Check if the WebView can go back. + if (currentWebView.canGoBack()) { + // Get the current web back forward list. + WebBackForwardList webBackForwardList = currentWebView.copyBackForwardList(); + + // Get the previous entry URL. + String previousUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() - 1).getUrl(); + + // Apply the domain settings. + applyDomainSettings(currentWebView, previousUrl, false, false, false); + + // Load the previous website in the history. + currentWebView.goBack(); + } + } else if (menuItemId == R.id.forward) { // Forward. + // Check if the WebView can go forward. + if (currentWebView.canGoForward()) { + // Get the current web back forward list. + WebBackForwardList webBackForwardList = currentWebView.copyBackForwardList(); - case R.id.about: - // Create an intent to launch the about activity. - Intent aboutIntent = new Intent(this, AboutActivity.class); + // Get the next entry URL. + String nextUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() + 1).getUrl(); - // Create a string array for the blocklist versions. - String[] blocklistVersions = new String[] {easyList.get(0).get(0)[0], easyPrivacy.get(0).get(0)[0], fanboysAnnoyanceList.get(0).get(0)[0], fanboysSocialList.get(0).get(0)[0], - ultraList.get(0).get(0)[0], ultraPrivacy.get(0).get(0)[0]}; + // Apply the domain settings. + applyDomainSettings(currentWebView, nextUrl, false, false, false); - // Add the blocklist versions to the intent. - aboutIntent.putExtra("blocklist_versions", blocklistVersions); + // Load the next website in the history. + currentWebView.goForward(); + } + } else if (menuItemId == R.id.history) { // History. + // Instantiate the URL history dialog. + DialogFragment urlHistoryDialogFragment = UrlHistoryDialog.loadBackForwardList(currentWebView.getWebViewFragmentId()); - // Make it so. - startActivity(aboutIntent); - break; + // Show the URL history dialog. + urlHistoryDialogFragment.show(getSupportFragmentManager(), getString(R.string.history)); + } else if (menuItemId == R.id.open) { // Open. + // Instantiate the open file dialog. + DialogFragment openDialogFragment = new OpenDialog(); + + // Show the open file dialog. + openDialogFragment.show(getSupportFragmentManager(), getString(R.string.open)); + } else if (menuItemId == R.id.requests) { // Requests. + // Populate the resource requests. + RequestsActivity.resourceRequests = currentWebView.getResourceRequests(); + + // Create an intent to launch the Requests activity. + Intent requestsIntent = new Intent(this, RequestsActivity.class); + + // Add the block third-party requests status to the intent. + requestsIntent.putExtra("block_all_third_party_requests", currentWebView.isBlocklistEnabled(NestedScrollWebView.THIRD_PARTY_REQUESTS)); + + // Make it so. + startActivity(requestsIntent); + } else if (menuItemId == R.id.downloads) { // Downloads. + // Launch the system Download Manager. + Intent downloadManagerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); + + // Launch as a new task so that Download Manager and Privacy Browser show as separate windows in the recent tasks list. + downloadManagerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + + // Make it so. + startActivity(downloadManagerIntent); + } else if (menuItemId == R.id.domains) { // Domains. + // Set the flag to reapply the domain settings on restart when returning from Domain Settings. + reapplyDomainSettingsOnRestart = true; + + // Launch the domains activity. + Intent domainsIntent = new Intent(this, DomainsActivity.class); + + // Add the extra information to the intent. + domainsIntent.putExtra("current_url", currentWebView.getUrl()); + + // Get the current certificate. + SslCertificate sslCertificate = currentWebView.getCertificate(); + + // Check to see if the SSL certificate is populated. + if (sslCertificate != null) { + // Extract the certificate to strings. + String issuedToCName = sslCertificate.getIssuedTo().getCName(); + String issuedToOName = sslCertificate.getIssuedTo().getOName(); + String issuedToUName = sslCertificate.getIssuedTo().getUName(); + String issuedByCName = sslCertificate.getIssuedBy().getCName(); + String issuedByOName = sslCertificate.getIssuedBy().getOName(); + String issuedByUName = sslCertificate.getIssuedBy().getUName(); + long startDateLong = sslCertificate.getValidNotBeforeDate().getTime(); + long endDateLong = sslCertificate.getValidNotAfterDate().getTime(); + + // Add the certificate to the intent. + domainsIntent.putExtra("ssl_issued_to_cname", issuedToCName); + domainsIntent.putExtra("ssl_issued_to_oname", issuedToOName); + domainsIntent.putExtra("ssl_issued_to_uname", issuedToUName); + domainsIntent.putExtra("ssl_issued_by_cname", issuedByCName); + domainsIntent.putExtra("ssl_issued_by_oname", issuedByOName); + domainsIntent.putExtra("ssl_issued_by_uname", issuedByUName); + domainsIntent.putExtra("ssl_start_date", startDateLong); + domainsIntent.putExtra("ssl_end_date", endDateLong); + } + + // Check to see if the current IP addresses have been received. + if (currentWebView.hasCurrentIpAddresses()) { + // Add the current IP addresses to the intent. + domainsIntent.putExtra("current_ip_addresses", currentWebView.getCurrentIpAddresses()); + } + + // Make it so. + startActivity(domainsIntent); + } else if (menuItemId == R.id.settings) { // Settings. + // Set the flag to reapply app settings on restart when returning from Settings. + reapplyAppSettingsOnRestart = true; + + // Set the flag to reapply the domain settings on restart when returning from Settings. + reapplyDomainSettingsOnRestart = true; + + // Launch the settings activity. + Intent settingsIntent = new Intent(this, SettingsActivity.class); + startActivity(settingsIntent); + } else if (menuItemId == R.id.import_export) { // Import/Export. + // Create an intent to launch the import/export activity. + Intent importExportIntent = new Intent(this, ImportExportActivity.class); + + // Make it so. + startActivity(importExportIntent); + } else if (menuItemId == R.id.logcat) { // Logcat. + // Create an intent to launch the logcat activity. + Intent logcatIntent = new Intent(this, LogcatActivity.class); + + // Make it so. + startActivity(logcatIntent); + } else if (menuItemId == R.id.guide) { // Guide. + // Create an intent to launch the guide activity. + Intent guideIntent = new Intent(this, GuideActivity.class); + + // Make it so. + startActivity(guideIntent); + } else if (menuItemId == R.id.about) { // About + // Create an intent to launch the about activity. + Intent aboutIntent = new Intent(this, AboutActivity.class); + + // Create a string array for the blocklist versions. + String[] blocklistVersions = new String[]{easyList.get(0).get(0)[0], easyPrivacy.get(0).get(0)[0], fanboysAnnoyanceList.get(0).get(0)[0], fanboysSocialList.get(0).get(0)[0], + ultraList.get(0).get(0)[0], ultraPrivacy.get(0).get(0)[0]}; + + // Add the blocklist versions to the intent. + aboutIntent.putExtra("blocklist_versions", blocklistVersions); + + // Make it so. + startActivity(aboutIntent); } // Close the navigation drawer. @@ -2560,13 +2492,16 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook @Override public void onSaveBookmarkFolder(DialogFragment dialogFragment, int selectedFolderDatabaseId, Bitmap favoriteIconBitmap) { + // Remove the incorrect lint warning below that the dialog fragment might be null. + assert dialogFragment != null; + // Get the dialog. Dialog dialog = dialogFragment.getDialog(); // Remove the incorrect lint warning below that the dialog might be null. assert dialog != null; - // Get handles for the views from `dialogFragment`. + // Get handles for the views from the dialog. EditText editFolderNameEditText = dialog.findViewById(R.id.edit_folder_name_edittext); RadioButton currentFolderIconRadioButton = dialog.findViewById(R.id.edit_folder_current_icon_radiobutton); RadioButton defaultFolderIconRadioButton = dialog.findViewById(R.id.edit_folder_default_icon_radiobutton); @@ -2951,6 +2886,9 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook @Override public void onApplyNewFontSize(DialogFragment dialogFragment) { + // Remove the incorrect lint warning below that the dialog fragment might be null. + assert dialogFragment != null; + // Get the dialog. Dialog dialog = dialogFragment.getDialog(); @@ -6208,22 +6146,19 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Reset the requests counters. nestedScrollWebView.resetRequestsCounters(); - // Hide the keyboard. - inputMethodManager.hideSoftInputFromWindow(nestedScrollWebView.getWindowToken(), 0); - // Get the current page position. int currentPagePosition = webViewPagerAdapter.getPositionForId(nestedScrollWebView.getWebViewFragmentId()); - // Update the URL text bar if the page is currently selected. - if (tabLayout.getSelectedTabPosition() == currentPagePosition) { - // Clear the focus from the URL edit text. - urlEditText.clearFocus(); - + // Update the URL text bar if the page is currently selected and the URL edit text is not currently being edited. + if ((tabLayout.getSelectedTabPosition() == currentPagePosition) && !urlEditText.hasFocus()) { // Display the formatted URL text. urlEditText.setText(url); // Apply text highlighting to `urlTextBox`. highlightUrlText(); + + // Hide the keyboard. + inputMethodManager.hideSoftInputFromWindow(nestedScrollWebView.getWindowToken(), 0); } // Reset the list of host IP addresses. @@ -6483,6 +6418,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } else if (launchingIntentUriData != null){ // The intent contains a URL. // Store the URL. urlToLoadString = launchingIntentUriData.toString(); + + // Reset the intent. This prevents a duplicate tab from being created on a subsequent restart if loading an link from a new intent on restart. + // For example, this prevents a duplicate tab if a link is loaded from the Guide after changing the theme in the guide and then changing the theme again in the main activity. + setIntent(new Intent()); } else if (!url.equals("")) { // The activity has been restarted. // Load the saved URL. urlToLoadString = url; diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java index 0a506709..27f97290 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java @@ -34,9 +34,9 @@ import java.util.LinkedList; public class AboutPagerAdapter extends FragmentPagerAdapter { // Define the class variables. - private Context context; - private String[] blocklistVersions; - private LinkedList aboutFragmentList = new LinkedList<>(); + private final Context context; + private final String[] blocklistVersions; + private final LinkedList aboutFragmentList = new LinkedList<>(); public AboutPagerAdapter(FragmentManager fragmentManager, Context context, String[] blocklistVersions) { // Run the default commands. diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/GuidePagerAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/adapters/GuidePagerAdapter.java index 26d376c2..fc89cefd 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/GuidePagerAdapter.java +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/GuidePagerAdapter.java @@ -27,11 +27,11 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import com.stoutner.privacybrowser.R; -import com.stoutner.privacybrowser.fragments.GuideTabFragment; +import com.stoutner.privacybrowser.fragments.GuideWebViewFragment; public class GuidePagerAdapter extends FragmentPagerAdapter { // Define the class variables. - private Context context; + private final Context context; // The default constructor. public GuidePagerAdapter(FragmentManager fragmentManager, Context context) { @@ -88,6 +88,6 @@ public class GuidePagerAdapter extends FragmentPagerAdapter { @NonNull // Setup each tab. public Fragment getItem(int tabNumber) { - return GuideTabFragment.createTab(tabNumber); + return GuideWebViewFragment.createTab(tabNumber); } } \ No newline at end of file diff --git a/app/src/main/java/com/stoutner/privacybrowser/asynctasks/SaveUrl.java b/app/src/main/java/com/stoutner/privacybrowser/asynctasks/SaveUrl.java index 10a95609..2096e139 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/asynctasks/SaveUrl.java +++ b/app/src/main/java/com/stoutner/privacybrowser/asynctasks/SaveUrl.java @@ -51,16 +51,16 @@ import java.text.NumberFormat; public class SaveUrl extends AsyncTask { // Define a weak references. - private WeakReference contextWeakReference; - private WeakReference activityWeakReference; + private final WeakReference contextWeakReference; + private final WeakReference activityWeakReference; // Define a success string constant. private final String SUCCESS = "Success"; // Define the class variables. - private String filePathString; - private String userAgent; - private boolean cookiesEnabled; + private final String filePathString; + private final String userAgent; + private final boolean cookiesEnabled; private Snackbar savingFileSnackbar; // The public constructor. @@ -225,20 +225,20 @@ public class SaveUrl extends AsyncTask { // Close the file output stream. fileOutputStream.close(); - - // Create a media scanner intent, which adds items like pictures to Android's recent file list. - Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); - - // Add the URI to the media scanner intent. - mediaScannerIntent.setData(Uri.fromFile(file)); - - // Make it so. - activity.sendBroadcast(mediaScannerIntent); } finally { // Disconnect the HTTP URL connection. httpUrlConnection.disconnect(); } } + + // Create a media scanner intent, which adds items like pictures to Android's recent file list. + Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); + + // Add the URI to the media scanner intent. + mediaScannerIntent.setData(Uri.fromFile(file)); + + // Make it so. + activity.sendBroadcast(mediaScannerIntent); } catch (Exception exception) { // Store the error in the save disposition string. saveDisposition = exception.toString(); diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateBookmarkFolderDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateBookmarkFolderDialog.kt index 7d4283bf..70546649 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateBookmarkFolderDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateBookmarkFolderDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt index 7c2012c6..eb445a16 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDialog.kt index efe1c0d5..356de47b 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt index 603dff26..9c5a3273 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.kt index 5ff29c5b..ea4ea4d4 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/FontSizeDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/FontSizeDialog.kt index e6f3110b..c8f3de89 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/FontSizeDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/FontSizeDialog.kt @@ -16,13 +16,14 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint import android.app.Dialog import android.content.Context import android.content.DialogInterface -import android.content.res.Configuration + import android.os.Bundle import android.view.KeyEvent import android.view.View diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/HttpAuthenticationDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/HttpAuthenticationDialog.kt index dca6032d..8ed2a73f 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/HttpAuthenticationDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/HttpAuthenticationDialog.kt @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with Privacy Browser. If not, see . */ + package com.stoutner.privacybrowser.dialogs import android.annotation.SuppressLint @@ -184,7 +185,7 @@ class HttpAuthenticationDialog: DialogFragment() { ForegroundColorSpan(resources.getColor(R.color.blue_700)) } else { @Suppress("DEPRECATION") - ForegroundColorSpan(resources.getColor(R.color.violet_500)) + ForegroundColorSpan(resources.getColor(R.color.violet_700)) } // Setup the span to display the host name in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction. diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java index 80b8b4e7..9036f9cd 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/PinnedMismatchDialog.java @@ -432,12 +432,12 @@ public class PinnedMismatchDialog extends DialogFragment { int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; // Set the color spans according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { - blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_500)); - redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); - } else { + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700)); redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700)); + } else { + blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_700)); + redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); } // Set the domain name to be blue. diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/SslCertificateErrorDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/SslCertificateErrorDialog.java index 76a23a81..c34faaad 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/SslCertificateErrorDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/SslCertificateErrorDialog.java @@ -268,7 +268,7 @@ public class SslCertificateErrorDialog extends DialogFragment { blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700)); redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700)); } else { - blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_500)); + blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_700)); redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); } @@ -373,8 +373,8 @@ public class SslCertificateErrorDialog extends DialogFragment { // This must run asynchronously because it involves a network request. `String` declares the parameters. `Void` does not declare progress units. `SpannableStringBuilder` contains the results. private static class GetIpAddresses extends AsyncTask { // The weak references are used to determine if the activity or the alert dialog have disappeared while the AsyncTask is running. - private WeakReference activityWeakReference; - private WeakReference alertDialogWeakReference; + private final WeakReference activityWeakReference; + private final WeakReference alertDialogWeakReference; GetIpAddresses(Activity activity, AlertDialog alertDialog) { // Populate the weak references. diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java index d27b1930..84848c6b 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/ViewSslCertificateDialog.java @@ -238,12 +238,12 @@ public class ViewSslCertificateDialog extends DialogFragment { int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; // Set the color spans according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { - blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_500)); - redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); - } else { + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700)); redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700)); + } else { + blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_700)); + redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); } // Remove the incorrect lint error that `.equals` might produce a NullPointerException. diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.java index b088a88f..f1f99c8e 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.java @@ -319,7 +319,7 @@ public class AboutVersionFragment extends Fragment { if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700)); } else { - blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_500)); + blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.violet_700)); } // Setup the spans to display the device information in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction. @@ -544,81 +544,76 @@ public class AboutVersionFragment extends Fragment { @Override public boolean onOptionsItemSelected(@NonNull MenuItem menuItem) { + // Remove the incorrect lint warning below that the activity might be null. + assert getActivity() != null; + // Get the ID of the menu item that was selected. int menuItemId = menuItem.getItemId(); - // Remove the warning below that `getActivity()` might be null. - assert getActivity() != null; - // Run the appropriate commands. - switch (menuItemId) { - case R.id.copy: - // Get the about version string. - String aboutVersionString = getAboutVersionString(); - - // Get a handle for the clipboard manager. - ClipboardManager clipboardManager = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - - // Remove the incorrect lint error below that the clipboard manager might be null. - assert clipboardManager != null; - - // Save the about version string in a clip data. - ClipData aboutVersionClipData = ClipData.newPlainText(getString(R.string.about), aboutVersionString); - - // Place the clip data on the clipboard. - clipboardManager.setPrimaryClip(aboutVersionClipData); + if (menuItemId == R.id.copy) { // Copy. + // Get the about version string. + String aboutVersionString = getAboutVersionString(); - // Display a snackbar. - Snackbar.make(aboutVersionLayout, R.string.version_info_copied, Snackbar.LENGTH_SHORT).show(); + // Get a handle for the clipboard manager. + ClipboardManager clipboardManager = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - // Consume the event. - return true; + // Remove the incorrect lint error below that the clipboard manager might be null. + assert clipboardManager != null; - case R.id.share: - // Get the about version string. - String aboutString = getAboutVersionString(); + // Save the about version string in a clip data. + ClipData aboutVersionClipData = ClipData.newPlainText(getString(R.string.about), aboutVersionString); - // Create an email intent. - Intent emailIntent = new Intent(Intent.ACTION_SEND); + // Place the clip data on the clipboard. + clipboardManager.setPrimaryClip(aboutVersionClipData); - // Add the about version string to the intent. - emailIntent.putExtra(Intent.EXTRA_TEXT, aboutString); + // Display a snackbar. + Snackbar.make(aboutVersionLayout, R.string.version_info_copied, Snackbar.LENGTH_SHORT).show(); - // Set the MIME type. - emailIntent.setType("text/plain"); + // Consume the event. + return true; + } else if (menuItemId == R.id.share) { // Share. + // Get the about version string. + String aboutString = getAboutVersionString(); - // Set the intent to open in a new task. - emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // Create an email intent. + Intent emailIntent = new Intent(Intent.ACTION_SEND); - // Make it so. - startActivity(Intent.createChooser(emailIntent, getString(R.string.share))); + // Add the about version string to the intent. + emailIntent.putExtra(Intent.EXTRA_TEXT, aboutString); - // Consume the event. - return true; + // Set the MIME type. + emailIntent.setType("text/plain"); - case R.id.save_text: - // Instantiate the save alert dialog. - DialogFragment saveTextDialogFragment = SaveDialog.save(SaveDialog.SAVE_ABOUT_VERSION_TEXT); + // Set the intent to open in a new task. + emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - // Show the save alert dialog. - saveTextDialogFragment.show(getActivity().getSupportFragmentManager(), getString(R.string.save_dialog)); + // Make it so. + startActivity(Intent.createChooser(emailIntent, getString(R.string.share))); - // Consume the event. - return true; + // Consume the event. + return true; + } else if (menuItemId == R.id.save_text) { // Save text. + // Instantiate the save alert dialog. + DialogFragment saveTextDialogFragment = SaveDialog.save(SaveDialog.SAVE_ABOUT_VERSION_TEXT); - case R.id.save_image: - // Instantiate the save alert dialog. - DialogFragment saveImageDialogFragment = SaveDialog.save(SaveDialog.SAVE_ABOUT_VERSION_IMAGE); + // Show the save alert dialog. + saveTextDialogFragment.show(getActivity().getSupportFragmentManager(), getString(R.string.save_dialog)); - // Show the save alert dialog. - saveImageDialogFragment.show(getActivity().getSupportFragmentManager(), getString(R.string.save_dialog)); + // Consume the event. + return true; + } else if (menuItemId == R.id.save_image) { // Save image. + // Instantiate the save alert dialog. + DialogFragment saveImageDialogFragment = SaveDialog.save(SaveDialog.SAVE_ABOUT_VERSION_IMAGE); - // Consume the event. - return true; + // Show the save alert dialog. + saveImageDialogFragment.show(getActivity().getSupportFragmentManager(), getString(R.string.save_dialog)); - default: - // Don't consume the event. - return super.onOptionsItemSelected(menuItem); + // Consume the event. + return true; + } else { // The home button was selected. + // Return the parent class. + return super.onOptionsItemSelected(menuItem); } } diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.java index 307512b2..78d318aa 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.java @@ -19,15 +19,23 @@ package com.stoutner.privacybrowser.fragments; +import android.content.Context; +import android.content.Intent; import android.content.res.Configuration; +import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.webkit.WebResourceResponse; import android.webkit.WebView; +import android.webkit.WebViewClient; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.webkit.WebSettingsCompat; +import androidx.webkit.WebViewAssetLoader; +import androidx.webkit.WebViewFeature; import com.stoutner.privacybrowser.R; @@ -39,7 +47,7 @@ public class AboutWebViewFragment extends Fragment { private int tabNumber; // Declare the class views. - private View aboutWebViewLayout; + private View webViewLayout; public static AboutWebViewFragment createTab(int tabNumber) { // Create an arguments bundle. @@ -69,90 +77,102 @@ public class AboutWebViewFragment extends Fragment { // Remove the incorrect lint warning below that arguments might be null. assert arguments != null; - // Store the arguments in class variables. + // Store the tab number in a class variable. tabNumber = arguments.getInt(TAB_NUMBER); } @Override public View onCreateView(@NonNull LayoutInflater layoutInflater, ViewGroup container, Bundle savedInstanceState) { - // Get the current theme status. - int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; - // Inflate the layout. Setting false at the end of inflater.inflate does not attach the inflated layout as a child of container. The fragment will take care of attaching the root automatically. - aboutWebViewLayout = layoutInflater.inflate(R.layout.bare_webview, container, false); + webViewLayout = layoutInflater.inflate(R.layout.bare_webview, container, false); // Get a handle for tab WebView. - WebView tabWebView = (WebView) aboutWebViewLayout; - - // Load the tabs according to the theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The light theme is applied. - switch (tabNumber) { - case 1: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_permissions_light.html"); - break; - - case 2: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_privacy_policy_light.html"); - break; - - case 3: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_changelog_light.html"); - break; - - case 4: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_licenses_light.html"); - break; - - case 5: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_contributors_light.html"); - break; - - case 6: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_links_light.html"); - break; + WebView tabWebView = (WebView) webViewLayout; + + // Get a handle for the context. + Context context = getContext(); + + // Remove the incorrect lint warning below that the context might be null. + assert context != null; + + // Create a WebView asset loader. + final WebViewAssetLoader webViewAssetLoader = new WebViewAssetLoader.Builder().addPathHandler("/assets/", new WebViewAssetLoader.AssetsPathHandler(context)).build(); + + // Set a WebView client. + tabWebView.setWebViewClient(new WebViewClient() { + // `shouldOverrideUrlLoading` allows the sending of external links back to the main Privacy Browser WebView. The deprecated `shouldOverrideUrlLoading` must be used until API >= 24. + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + // Create an intent to view the URL. + Intent urlIntent = new Intent(Intent.ACTION_VIEW); + + // Add the URL to the intent. + urlIntent.setData(Uri.parse(url)); + + // Make it so. + startActivity(urlIntent); + return true; } - } else { // The dark theme is applied. - // Set the background color. The deprecated `.getColor()` must be used until the minimum API >= 23. - tabWebView.setBackgroundColor(getResources().getColor(R.color.gray_850)); - - // Tab numbers start at 0, with the WebView tabs starting at 1. - switch (tabNumber) { - case 1: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_permissions_dark.html"); - break; - - case 2: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_privacy_policy_dark.html"); - break; - - case 3: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_changelog_dark.html"); - break; - - case 4: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_licenses_dark.html"); - break; - - case 5: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_contributors_dark.html"); - break; - - case 6: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/about_links_dark.html"); - break; + + @Override + public WebResourceResponse shouldInterceptRequest(WebView webView, String url) { + // Have the WebView asset loader process the request. This allows the loading of SVG files, which otherwise is prevented by the CORS policy. + return webViewAssetLoader.shouldInterceptRequest(Uri.parse(url)); } + }); + + // Get the current theme status. + int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + + // Check to see if the app is in night mode. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The app is in night mode. + // Apply the dark WebView theme. + WebSettingsCompat.setForceDark(tabWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); + } + + // Load the indicated tab. The tab numbers start at 0, with the WebView tabs starting at 1. + switch (tabNumber) { + case 1: + // Load the Permissions tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_permissions.html"); + break; + + case 2: + // Load the Privacy Policy tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_privacy_policy.html"); + break; + + case 3: + // Load the Changelog tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_changelog.html"); + break; + + case 4: + // Load the Licenses tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_licenses.html"); + break; + + case 5: + // Load the Contributors tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_contributors.html"); + break; + + case 6: + // Load the Links tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/about_links.html"); + break; } // Scroll the tab if the saved instance state is not null. if (savedInstanceState != null) { - aboutWebViewLayout.post(() -> { - aboutWebViewLayout.setScrollX(savedInstanceState.getInt("scroll_x")); - aboutWebViewLayout.setScrollY(savedInstanceState.getInt("scroll_y")); + tabWebView.post(() -> { + tabWebView.setScrollX(savedInstanceState.getInt("scroll_x")); + tabWebView.setScrollY(savedInstanceState.getInt("scroll_y")); }); } - // Return the tab layout. - return aboutWebViewLayout; + // Return the formatted WebView layout. + return webViewLayout; } @Override @@ -160,10 +180,14 @@ public class AboutWebViewFragment extends Fragment { // Run the default commands. super.onSaveInstanceState(savedInstanceState); + + // Get a handle for the tab WebView. A class variable cannot be used because it gets out of sync when restarting. + WebView tabWebView = (WebView) webViewLayout; + // Save the scroll positions if the layout is not null, which can happen if a tab is not currently selected. - if (aboutWebViewLayout != null) { - savedInstanceState.putInt("scroll_x", aboutWebViewLayout.getScrollX()); - savedInstanceState.putInt("scroll_y", aboutWebViewLayout.getScrollY()); + if (tabWebView != null) { + savedInstanceState.putInt("scroll_x", tabWebView.getScrollX()); + savedInstanceState.putInt("scroll_y", tabWebView.getScrollY()); } } } \ No newline at end of file diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java index 5e3a4336..e10af110 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java @@ -304,16 +304,16 @@ public class DomainSettingsFragment extends Fragment { } // Create the foreground color spans. - final ForegroundColorSpan redColorSpan; final ForegroundColorSpan blueColorSpan; + final ForegroundColorSpan redColorSpan; // Set the color spans according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { - redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_900)); - blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.violet_500)); - } else { - redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_a700)); + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.blue_700)); + redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_a700)); + } else { + blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.violet_700)); + redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_900)); } // Set the domain name from the the database cursor. @@ -421,11 +421,7 @@ public class DomainSettingsFragment extends Fragment { } } else { // First-party cookies are disabled. // Set the status of third-party cookies. - if (thirdPartyCookiesInt == 1) { - thirdPartyCookiesSwitch.setChecked(true); - } else { - thirdPartyCookiesSwitch.setChecked(false); - } + thirdPartyCookiesSwitch.setChecked(thirdPartyCookiesInt == 1); // Disable the third-party cookies switch. thirdPartyCookiesSwitch.setEnabled(false); @@ -467,11 +463,7 @@ public class DomainSettingsFragment extends Fragment { domStorageSwitch.setEnabled(false); // Set the checked status of DOM storage. - if (domStorageInt == 1) { // DOM storage is enabled but JavaScript is disabled. - domStorageSwitch.setChecked(true); - } else { // Both JavaScript and DOM storage are disabled. - domStorageSwitch.setChecked(false); - } + domStorageSwitch.setChecked(domStorageInt == 1); // Set the icon according to the theme. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { @@ -606,14 +598,8 @@ public class DomainSettingsFragment extends Fragment { // Disable Fanboy's Social Blocking List switch. fanboysSocialBlockingListSwitch.setEnabled(false); - // Handle the status of Fanboy's Social Blocking List. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons. - if (fanboysSocialBlockingListInt == 1) { // Fanboy's Social Blocking List is on. - // Turn on Fanboy's Social Blocking List switch. - fanboysSocialBlockingListSwitch.setChecked(true); - } else { // Fanboy's Social Blocking List is off. - // Turn off Fanboy's Social Blocking List switch. - fanboysSocialBlockingListSwitch.setChecked(false); - } + // Set the status of Fanboy's Social Blocking List. + fanboysSocialBlockingListSwitch.setChecked(fanboysSocialBlockingListInt == 1); // Set the icon according to the theme. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideTabFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideTabFragment.java deleted file mode 100644 index 6f3aa0d3..00000000 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideTabFragment.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright © 2016-2020 Soren Stoutner . - * - * This file is part of 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 . - */ - -package com.stoutner.privacybrowser.fragments; - -import android.content.res.Configuration; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.WebView; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; - -import com.stoutner.privacybrowser.R; - -public class GuideTabFragment extends Fragment { - // Define the class variables. - private int tabNumber; - private View tabLayout; - - // Store the tab number in the arguments bundle. - public static GuideTabFragment createTab (int tabNumber) { - // Create a bundle. - Bundle bundle = new Bundle(); - - // Store the tab number in the bundle. - bundle.putInt("tab_number", tabNumber); - - // Create a new guide tab fragment. - GuideTabFragment guideTabFragment = new GuideTabFragment(); - - // Add the bundle to the fragment. - guideTabFragment.setArguments(bundle); - - // Return the new fragment. - return guideTabFragment; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - // Run the default commands. - super.onCreate(savedInstanceState); - - // Get a handle for the arguments. - Bundle arguments = getArguments(); - - // Remove the lint warning below that arguments might be null. - assert arguments != null; - - // Store the tab number in a class variable. - tabNumber = arguments.getInt("tab_number"); - } - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - // Inflate the layout. The fragment will take care of attaching the root automatically. - tabLayout = inflater.inflate(R.layout.bare_webview, container, false); - - // Get a handle for the tab WebView. - WebView tabWebView = (WebView) tabLayout; - - // Get the current theme status. - int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; - - // Load the tabs according to the theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // The dark theme is applied. - tabWebView.setBackgroundColor(getResources().getColor(R.color.gray_850)); - - // Tab numbers start at 0. - switch (tabNumber) { - case 0: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_overview_dark.html"); - break; - - case 1: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_javascript_dark.html"); - break; - - case 2: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_local_storage_dark.html"); - break; - - case 3: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_user_agent_dark.html"); - break; - - case 4: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_requests_dark.html"); - break; - - case 5: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_domain_settings_dark.html"); - break; - - case 6: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_ssl_certificates_dark.html"); - break; - - case 7: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_proxies_dark.html"); - break; - - case 8: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_tracking_ids_dark.html"); - break; - } - } else { // The light theme is applied. - // Tab numbers start at 0. - switch (tabNumber) { - case 0: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_overview_light.html"); - break; - - case 1: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_javascript_light.html"); - break; - - case 2: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_local_storage_light.html"); - break; - - case 3: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_user_agent_light.html"); - break; - - case 4: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_requests_light.html"); - break; - - case 5: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_domain_settings_light.html"); - break; - - case 6: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_ssl_certificates_light.html"); - break; - - case 7: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_proxies_light.html"); - break; - - case 8: - tabWebView.loadUrl("file:///android_asset/" + getString(R.string.android_asset_path) + "/guide_tracking_ids_light.html"); - break; - } - } - - // Scroll the WebView if the saved instance state is not null. - if (savedInstanceState != null) { - tabWebView.post(() -> tabWebView.setScrollY(savedInstanceState.getInt("scroll_y"))); - } - - // Return the formatted `tabLayout`. - return tabLayout; - } - - @Override - public void onSaveInstanceState(@NonNull Bundle savedInstanceState) { - // Run the default commands. - super.onSaveInstanceState(savedInstanceState); - - // Get a handle for the tab WebView. A class variable cannot be used because it gets out of sync when restarting. - WebView tabWebView = (WebView) tabLayout; - - // Save the scroll Y position if the tab WebView is not null, which can happen if a tab is not currently selected. - if (tabWebView != null) { - savedInstanceState.putInt("scroll_y", tabWebView.getScrollY()); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java new file mode 100644 index 00000000..0b0bc157 --- /dev/null +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java @@ -0,0 +1,204 @@ +/* + * Copyright © 2016-2020 Soren Stoutner . + * + * This file is part of 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 . + */ + +package com.stoutner.privacybrowser.fragments; + +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; +import android.net.Uri; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.WebResourceResponse; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.webkit.WebSettingsCompat; +import androidx.webkit.WebViewAssetLoader; +import androidx.webkit.WebViewFeature; + +import com.stoutner.privacybrowser.R; + +public class GuideWebViewFragment extends Fragment { + // Declare the class constants. + private final static String TAB_NUMBER = "tab_number"; + + // Declare the class variables. + private int tabNumber; + + // Declare the class views. + private View webViewLayout; + + // Store the tab number in the arguments bundle. + public static GuideWebViewFragment createTab (int tabNumber) { + // Create a bundle. + Bundle bundle = new Bundle(); + + // Store the tab number in the bundle. + bundle.putInt(TAB_NUMBER, tabNumber); + + // Create a new guide tab fragment. + GuideWebViewFragment guideWebViewFragment = new GuideWebViewFragment(); + + // Add the bundle to the fragment. + guideWebViewFragment.setArguments(bundle); + + // Return the new fragment. + return guideWebViewFragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + // Run the default commands. + super.onCreate(savedInstanceState); + + // Get a handle for the arguments. + Bundle arguments = getArguments(); + + // Remove the lint warning below that arguments might be null. + assert arguments != null; + + // Store the tab number in a class variable. + tabNumber = arguments.getInt(TAB_NUMBER); + } + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + // Inflate the layout. The fragment will take care of attaching the root automatically. + webViewLayout = inflater.inflate(R.layout.bare_webview, container, false); + + // Get a handle for the tab WebView. + WebView tabWebView = (WebView) webViewLayout; + + // Get a handle for the context. + Context context = getContext(); + + // Remove the incorrect lint warning below that the context might be null. + assert context != null; + + // Create a WebView asset loader. + final WebViewAssetLoader webViewAssetLoader = new WebViewAssetLoader.Builder().addPathHandler("/assets/", new WebViewAssetLoader.AssetsPathHandler(context)).build(); + + // Set a WebView client. + tabWebView.setWebViewClient(new WebViewClient() { + // `shouldOverrideUrlLoading` allows sending of external links back to the main Privacy Browser WebView. The deprecated `shouldOverrideUrlLoading` must be used until API >= 24. + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + // Create an intent to view the URL. + Intent urlIntent = new Intent(Intent.ACTION_VIEW); + + // Add the URL to the intent. + urlIntent.setData(Uri.parse(url)); + + // Make it so. + startActivity(urlIntent); + return true; + } + + @Override + public WebResourceResponse shouldInterceptRequest(WebView webView, String url) { + // Have the WebView asset loader process the request. This allows loading of SVG files, which otherwise is prevented by the CORS policy. + return webViewAssetLoader.shouldInterceptRequest(Uri.parse(url)); + } + }); + + // Get the current theme status. + int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + + // Check to see if the app is in night mode. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The app is in night mode. + // Apply the dark WebView theme. + WebSettingsCompat.setForceDark(tabWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); + } + + // Load the indicated tab. The tab numbers start at 0. + switch (tabNumber) { + case 0: + // Load the Overview tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_overview.html"); + break; + + case 1: + // Load the JavaScript tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_javascript.html"); + break; + + case 2: + // Load the Local Storage tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_local_storage.html"); + break; + + case 3: + // Load the User Agent tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_user_agent.html"); + break; + + case 4: + // Load the Requests tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_requests.html"); + break; + + case 5: + // Load the Domain Settings tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_domain_settings.html"); + break; + + case 6: + // Load the SSL Certificates tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_ssl_certificates.html"); + break; + + case 7: + // Load the Proxies tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_proxies.html"); + break; + + case 8: + // Load the Tracking IDs tab. + tabWebView.loadUrl("https://appassets.androidplatform.net/assets/" + getString(R.string.android_asset_path) + "/guide_tracking_ids.html"); + break; + } + + // Scroll the WebView if the saved instance state is not null. + if (savedInstanceState != null) { + tabWebView.post(() -> tabWebView.setScrollY(savedInstanceState.getInt("scroll_y"))); + } + + // Return the formatted WebView layout. + return webViewLayout; + } + + @Override + public void onSaveInstanceState(@NonNull Bundle savedInstanceState) { + // Run the default commands. + super.onSaveInstanceState(savedInstanceState); + + // Get a handle for the tab WebView. A class variable cannot be used because it gets out of sync when restarting. + WebView tabWebView = (WebView) webViewLayout; + + // Save the scroll Y position if the tab WebView is not null, which can happen if a tab is not currently selected. + if (tabWebView != null) { + savedInstanceState.putInt("scroll_y", tabWebView.getScrollY()); + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/sort_selected_day.xml b/app/src/main/res/drawable/sort_selected_day.xml index 16700851..e6505a4a 100644 --- a/app/src/main/res/drawable/sort_selected_day.xml +++ b/app/src/main/res/drawable/sort_selected_day.xml @@ -19,6 +19,6 @@ diff --git a/app/src/main/res/values-night-v23/styles.xml b/app/src/main/res/values-night-v23/styles.xml index fbc06cc0..c3673ce6 100644 --- a/app/src/main/res/values-night-v23/styles.xml +++ b/app/src/main/res/values-night-v23/styles.xml @@ -28,8 +28,8 @@ ?android:attr/colorBackground @color/violet_700 - @color/violet_500 - @color/violet_700 + @color/violet_700 + @color/violet_500 @color/button_background_color_selector_night @color/button_text_color_selector_night @color/violet_500 diff --git a/app/src/main/res/values-night-v27/styles.xml b/app/src/main/res/values-night-v27/styles.xml index 42e31ec8..759fb1a1 100644 --- a/app/src/main/res/values-night-v27/styles.xml +++ b/app/src/main/res/values-night-v27/styles.xml @@ -30,8 +30,8 @@ ?android:attr/colorBackground @color/violet_700 - @color/violet_500 - @color/violet_700 + @color/violet_700 + @color/violet_500 @color/button_background_color_selector_night @color/button_text_color_selector_night @color/violet_500 diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 6c07cd07..8ba568fc 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -68,6 +68,7 @@ #FFF5F5F5 #FFEEEEEE #FFE0E0E0 + #FFC1C1C1 #FFBDBDBD #FFB7B7B7 #FF9E9E9E @@ -76,6 +77,7 @@ #FF515151 #FF424242 #FF313131 + #FF303030 #FF2D2D2D #FF212121 #FF202020 @@ -95,6 +97,7 @@ #FFC62828 #FFB71C1C #FFA21212 + #FF930606 #FFD50000 #00000000 diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 0dbf04fa..1f385797 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -26,8 +26,8 @@ ?android:attr/colorBackground @color/violet_700 - @color/violet_500 - @color/violet_700 + @color/violet_700 + @color/violet_500 @color/button_background_color_selector_night @color/button_text_color_selector_night @color/violet_500 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index c96e4f83..e414528a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -188,18 +188,22 @@ Salvar URL Salvar Arquivo + Salvar Texto Salvar Imagem Salvar logcat Nome do Arquivo Pagina_Web.mht Pagina_Web.png Privacy Browser Logcat.txt + Privacy Browser Versão.txt + Privacy Browser Versão.png Arquivo bytes tamanho desconhecido URL inválida OK Salvando file: + Processando imagem… : Arquivo Salvo: Erro ao salvar o arquivo: @@ -432,6 +436,7 @@ Versão do certificado: Número de série: Algoritmo de Assinatura: + Informações de versão copiada. Permissões Política de Privacidade Changelog diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 77746f32..4a24aff2 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -68,6 +68,7 @@ #FFF5F5F5 #FFEEEEEE #FFE0E0E0 + #FFC1C1C1 #FFBDBDBD #FFB7B7B7 #FF9E9E9E @@ -76,6 +77,7 @@ #FF515151 #FF424242 #FF313131 + #FF303030 #FF2D2D2D #FF212121 #FF202020 @@ -95,6 +97,7 @@ #FFC62828 #FFB71C1C #FFA21212 + #FF930606 #FFD50000 #00000000 diff --git a/build.gradle b/build.gradle index 8aa32962..3cdc9df9 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 47401957..4a958fdf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu May 28 22:17:21 MST 2020 +#Thu Oct 15 14:40:42 MST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip -- 2.45.2