From 57b05bcbae9759d4b58ce3b96ede61992eb34eee Mon Sep 17 00:00:00 2001 From: Soren Stoutner Date: Wed, 18 May 2016 15:53:42 -0700 Subject: [PATCH] Mark which strings cannot be translated because they are used in code. --- .idea/dictionaries/soren.xml | 7 ++ app/build.gradle | 2 +- .../privacybrowser/MainWebViewActivity.java | 39 +++++---- .../privacybrowser/SettingsFragment.java | 87 ++++++++++++++----- app/src/main/res/values/strings.xml | 9 +- app/src/main/res/xml/preferences.xml | 2 +- 6 files changed, 97 insertions(+), 49 deletions(-) create mode 100644 .idea/dictionaries/soren.xml diff --git a/.idea/dictionaries/soren.xml b/.idea/dictionaries/soren.xml new file mode 100644 index 00000000..bf739fc8 --- /dev/null +++ b/.idea/dictionaries/soren.xml @@ -0,0 +1,7 @@ + + + + wisen + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9ea14bb3..25c47811 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,5 +55,5 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:design:23.4.0' // Only compile com.google.android.gms:play-services-ads for the free version. - freeCompile 'com.google.android.gms:play-services-ads:8.4.0' + freeCompile 'com.google.android.gms:play-services-ads:9.0.0' } diff --git a/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java index 23339002..2edbfdfe 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java @@ -84,12 +84,8 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation public static boolean domStorageEnabled; // javaScriptDisabledSearchURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox(). public static String javaScriptDisabledSearchURL; - // javaScriptDisabledSearchCustomURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox(). - public static String javaScriptDisabledSearchCustomURL; // javaScriptEnabledSearchURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox(). public static String javaScriptEnabledSearchURL; - // javaScriptEnabledSearchCustomURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox(). - public static String javaScriptEnabledSearchCustomURL; // homepage is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and onOptionsItemSelected(). public static String homepage; // swipeToRefresh is public static so it can be accessed from SettingsFragment. It is also used in onCreate(). @@ -361,11 +357,24 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation break; } - // Set the initial status for the search URLs. - javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q="); - javaScriptDisabledSearchCustomURL = savedPreferences.getString("javascript_disabled_search_custom_url", ""); - javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q="); - javaScriptEnabledSearchCustomURL = savedPreferences.getString("javascript_enabled_search_custom_url", ""); + // Set the initial string for JavaScript disabled search. + if (savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) { + // Get the custom URL string. The default is "". + javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search_custom_url", ""); + } else { + // Use the string from javascript_disabled_search. + javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q="); + } + + // Set the initial string for JavaScript enabled search. + if (savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) { + // Get the custom URL string. The default is "". + javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search_custom_url", ""); + } else { + // Use the string from javascript_enabled_search. + javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q="); + } + // Set homepage initial status. The default value is "https://www.duckduckgo.com". homepage = savedPreferences.getString("homepage", "https://www.duckduckgo.com"); @@ -815,17 +824,9 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation // Use the correct search URL based on javaScriptEnabled. if (javaScriptEnabled) { - if (javaScriptEnabledSearchURL.equals("Custom URL")) { - formattedUrlString = javaScriptEnabledSearchCustomURL + encodedUrlString; - } else { - formattedUrlString = javaScriptEnabledSearchURL + encodedUrlString; - } + formattedUrlString = javaScriptEnabledSearchURL + encodedUrlString; } else { // JavaScript is disabled. - if (javaScriptDisabledSearchURL.equals("Custom URL")) { - formattedUrlString = javaScriptDisabledSearchCustomURL + encodedUrlString; - } else { - formattedUrlString = javaScriptDisabledSearchURL + encodedUrlString; - } + formattedUrlString = javaScriptDisabledSearchURL + encodedUrlString; } } diff --git a/app/src/main/java/com/stoutner/privacybrowser/SettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/SettingsFragment.java index 95b838aa..30a34f76 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/SettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/SettingsFragment.java @@ -42,12 +42,22 @@ public class SettingsFragment extends PreferenceFragment { // Set the current user-agent as the summary text for the "user_agent" preference when the preference screen is loaded. final Preference userAgentPreference = findPreference("user_agent"); - // Get the user agent text from the webview (which changes based on the version of Android and WebView installed) if we are using the default. - if (savedPreferences.getString("user_agent", "Default user agent").equals("Default user agent")) { - // Once API >= 17 we can use getDefaultUserAgent() instead of getUserAgentString(). - userAgentPreference.setSummary(MainWebViewActivity.mainWebView.getSettings().getUserAgentString()); - } else { // Display the user-agent from the preference as the summary text. - userAgentPreference.setSummary(savedPreferences.getString("user_agent", "Default user agent")); + switch (savedPreferences.getString("user_agent", "Default user agent")) { + case "Default user agent": + // Get the user agent text from the webview (which changes based on the version of Android and WebView installed). + // Once API >= 17 we can use getDefaultUserAgent() instead of getUserAgentString(). + userAgentPreference.setSummary(MainWebViewActivity.mainWebView.getSettings().getUserAgentString()); + break; + + case "Custom user agent": + // We can't use the string from the array because it is referenced in code and can't be translated. + userAgentPreference.setSummary(R.string.custom_user_agent); + break; + + default: + // Display the user agent from the preference as the summary text. + userAgentPreference.setSummary(savedPreferences.getString("user_agent", "Default user agent")); + break; } // Set the summary text for "custom_user_agent" (the default is "PrivacyBrowser/1.0") and enable it if "user_agent" it set to "Custom user agent". @@ -59,17 +69,30 @@ public class SettingsFragment extends PreferenceFragment { // Set the JavaScript-disabled search URL as the summary text for the JavaScript-disabled search preference when the preference screen is loaded. // The default is "https://duckduckgo.com/html/?q=". final Preference javaScriptDisabledSearchPreference = findPreference("javascript_disabled_search"); - javaScriptDisabledSearchPreference.setSummary(savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=")); + if (savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) { + // If set to "Custom URL", use R.string.custom_url, which will be translated, instead of the array value, which will not. + javaScriptDisabledSearchPreference.setSummary(R.string.custom_url); + } else { + // Set the array value as the summary text. + javaScriptDisabledSearchPreference.setSummary(savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=")); + } // Set the summary text for "javascript_disabled_search_custom_url" (the default is "") and enable it if "javascript_disabled_search" is set to "Custom URL". final Preference javaScriptDisabledSearchCustomURLPreference = findPreference("javascript_disabled_search_custom_url"); javaScriptDisabledSearchCustomURLPreference.setSummary(savedPreferences.getString("javascript_disabled_search_custom_url", "")); javaScriptDisabledSearchCustomURLPreference.setEnabled(javaScriptDisabledSearchPreference.getSummary().equals("Custom URL")); + // Set the JavaScript-enabed searchURL as the summary text for the JavaScript-enabled search preference when the preference screen is loaded. // The default is "https://duckduckgo.com/?q=". final Preference javaScriptEnabledSearchPreference = findPreference("javascript_enabled_search"); - javaScriptEnabledSearchPreference.setSummary(savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=")); + if (savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) { + // If set to "Custom URL", use R.string.custom_url, which will be tgranslated, instead of the array value, which will not. + javaScriptEnabledSearchPreference.setSummary(R.string.custom_url); + } else { + // Set the array value as the summary text. + javaScriptEnabledSearchPreference.setSummary(savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=")); + } // Set the summary text for "javascript_enabled_search_custom_url" (the default is "") and enable it if "javascript_enabled_search" is set to "Custom URL". final Preference javaScriptEnabledSearchCustomURLPreference = findPreference("javascript_enabled_search_custom_url"); @@ -191,13 +214,13 @@ public class SettingsFragment extends PreferenceFragment { case "Custom user agent": // Set the custom user agent on mainWebView, display "Custom user agent" as the summary text for userAgentPreference, and enable customUserAgent. MainWebViewActivity.mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0")); - userAgentPreference.setSummary("Custom user agent"); + userAgentPreference.setSummary(R.string.custom_user_agent); customUserAgent.setEnabled(true); break; default: // Set the user agent on mainWebView, display the user agent as the summary text for userAgentPreference, and disable customUserAgent. - MainWebViewActivity.mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0")); + MainWebViewActivity.mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("user_agent", "Default user agent")); userAgentPreference.setSummary(MainWebViewActivity.mainWebView.getSettings().getUserAgentString()); customUserAgent.setEnabled(false); break; @@ -213,14 +236,22 @@ public class SettingsFragment extends PreferenceFragment { break; case "javascript_disabled_search": - // Set the new search URL as the summary text for the JavaScript-disabled search preference. The default is "https://duckduckgo.com/html/?q=". - javaScriptDisabledSearchPreference.setSummary(sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=")); + if (sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) { + // Set the summary text to R.string.custom_url, which will be translated. + javaScriptDisabledSearchPreference.setSummary(R.string.custom_url); + + // Update the javaScriptDisabledSearchURL variable. The default is "". + MainWebViewActivity.javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search_custom_url", ""); + } else { // javascript_disabled_search is not set to Custom. + // Set the new search URL as the summary text for the JavaScript-disabled search preference. The default is "https://duckduckgo.com/html/?q=". + javaScriptDisabledSearchPreference.setSummary(sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=")); + + // Update the javaScriptDisabledSearchURL variable. The default is "https://duckduckgo.com/html/?q=". + MainWebViewActivity.javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q="); + } - // Enable "javascript_disabled_search_custom_url" if "javascript_disabled_search" is set to "Custom URL". + // Enable or disable javaScriptDisabledSearchCustomURLPreference. javaScriptDisabledSearchCustomURLPreference.setEnabled(javaScriptDisabledSearchPreference.getSummary().equals("Custom URL")); - - // Update the javaScriptDisabledSearchURL variable. The default is "https://duckduckgo.com/html/?q=". - MainWebViewActivity.javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q="); break; case "javascript_disabled_search_custom_url": @@ -228,18 +259,26 @@ public class SettingsFragment extends PreferenceFragment { javaScriptDisabledSearchCustomURLPreference.setSummary(sharedPreferences.getString("javascript_disabled_search_custom_url", "")); // Update javaScriptDisabledSearchCustomURL. The default is "". - MainWebViewActivity.javaScriptDisabledSearchCustomURL = sharedPreferences.getString("javascript_disabled_search_custom_url", ""); + MainWebViewActivity.javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search_custom_url", ""); break; case "javascript_enabled_search": - // Set the new search URL as the summary text for the JavaScript-enabled search preference. The default is "https://duckduckgo.com/?q=". - javaScriptEnabledSearchPreference.setSummary(sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=")); + if (sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) { + // Set the summary text to R.string.custom_url, which will be translated. + javaScriptEnabledSearchPreference.setSummary(R.string.custom_url); + + // Update the javaScriptEnabledSearchURL variable. The default is "". + MainWebViewActivity.javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search_custom_url", ""); + } else { // javascript_enabled_search is not set to Custom. + // Set the new search URL as the summary text for the JavaScript-enabled search preference. The default is "https://duckduckgo.com/?q=". + javaScriptEnabledSearchPreference.setSummary(sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=")); + + // Update the javaScriptEnabledSearchURL variable. The default is "https://duckduckgo.com/?q=". + MainWebViewActivity.javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q="); + } - // Enable "javascript_enabled_search_custom_url" if "javascript_enabled_search" is set to "Custom URL". + // Enable or disable javaScriptEnabledSearchCustomURLPreference. javaScriptEnabledSearchCustomURLPreference.setEnabled(javaScriptEnabledSearchPreference.getSummary().equals("Custom URL")); - - // Update the javaScriptEnabledSearchURL variable. The default is "https://duckduckgo.com/?q=". - MainWebViewActivity.javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q="); break; case "javascript_enabled_search_custom_url": @@ -247,7 +286,7 @@ public class SettingsFragment extends PreferenceFragment { javaScriptEnabledSearchCustomURLPreference.setSummary(sharedPreferences.getString("javascript_enabled_search_custom_url", "")); // Update javaScriptEnabledSearchCustomURL. The default is "". - MainWebViewActivity.javaScriptEnabledSearchCustomURL = sharedPreferences.getString("javascript_enabled_search_custom_url", ""); + MainWebViewActivity.javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search_custom_url", ""); break; case "homepage": diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 931175fc..ff644305 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,7 +99,7 @@ Custom - Default user agent + Default user agent PrivacyBrowser/1.0 Mozilla/5.0 (Android 6.0.1; Mobile; rv:46.0) Gecko/46.0 Firefox/46.0 Mozilla/5.0 (Linux; Android 6.0.1; Nexus 6P Build/MHC19Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36 @@ -110,7 +110,7 @@ Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 - Custom user agent + Custom user agent Custom user agent Search @@ -127,7 +127,7 @@ https://www.google.com/search?q= https://www.bing.com/search?q= https://search.yahoo.com/mobile/s?nojs=1&p= - Custom URL + Custom URL JavaScript-disabled search custom URL JavaScript-enabled search @@ -143,9 +143,10 @@ https://www.google.com/search?q= https://www.bing.com/search?q= https://search.yahoo.com/mobile/s?p= - Custom URL + Custom URL JavaScript-enabled search custom URL + Custom URL General Homepage Swipe to refresh diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 1853a2f9..5124481b 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -54,7 +54,7 @@ android:entryValues="@array/user_agent_entry_values" android:defaultValue="Default user agent" /> - // Android doesn't let EditTextPreferences have more than one line, but I include singleLine="false" in case they ever wisen up. + // Android doesn't let EditTextPreferences have more than one line, but singleLine="false" is included in case they ever wisen up.