From 1fd6e17736c7e6a410672ce8669241bcf4c4a350 Mon Sep 17 00:00:00 2001 From: Soren Stoutner <soren@stoutner.com> Date: Fri, 2 Jun 2017 22:10:00 -0700 Subject: [PATCH] Only reload the `WebView` on restart when displaying of images has just been disabled in settings. Fixes https://redmine.stoutner.com/issues/139. --- .../activities/MainWebViewActivity.java | 22 ++++++------- .../fragments/SettingsFragment.java | 10 +++++- app/src/main/res/values-es/strings.xml | 32 ++++++++++++------- app/src/main/res/values-it/strings.xml | 10 ++++++ app/src/main/res/values/strings.xml | 6 ++-- 5 files changed, 53 insertions(+), 27 deletions(-) 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 63617b69..9744eba3 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -138,9 +138,12 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation // `webViewTitle` is public static so it can be accessed from `CreateBookmarkDialog` and `CreateHomeScreenShortcutDialog`. It is also used in `onCreate()`. public static String webViewTitle; - // `displayWebpageImagesBoolean` is public static so it can be accessed from `DomainSettingsFragment`. It is also used in `applyAppSettings` and `applyDomainSettings()`. + // `displayWebpageImagesBoolean` is public static so it can be accessed from `DomainSettingsFragment`. It is also used in `applyAppSettings()` and `applyDomainSettings()`. public static boolean displayWebpageImagesBoolean; + // `reloadOnRestartBoolean` is public static so it can be accessed from `SettingsFragment`. It is also used in `onRestart()` + public static boolean reloadOnRestartBoolean; + // `navigatingHistory` is used in `onCreate()`, `onNavigationItemSelected()`, and `applyDomainSettings()`. private boolean navigatingHistory; @@ -237,9 +240,6 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation // `onTheFlyDisplayImagesSet` is used in `applyDomainSettings()` and `setDisplayWebpageImages()`. private boolean onTheFlyDisplayImagesSet; - // `loadingNewIntentBoolean` is used in `onNewIntent()` and `onRestart()`. - private boolean loadingNewIntentBoolean; - // `waitingForOrbotData` is used in `onCreate()` and `applyAppSettings()`. private String waitingForOrbotHTMLString; @@ -911,9 +911,6 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation @Override protected void onNewIntent(Intent intent) { - // Set `loadingNewIntentBoolean`. - loadingNewIntentBoolean = true; - // Sets the new intent as the activity intent, so that any future `getIntent()`s pick up this one instead of creating a new activity. setIntent(intent); @@ -948,12 +945,13 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation // Set the display webpage images mode. setDisplayWebpageImages(); - // Only reload `mainWebView` if not loading a new intent and not waiting for Orbot. - if (!loadingNewIntentBoolean && !waitingForOrbot) { - // Reload the webpage to remove images if `setDisplayWebpageImages` has turned them off. + // Reload the webpage if displaying of images has been disabled in `SettingsFragment`. + if (reloadOnRestartBoolean) { + // Reload `mainWebView`. mainWebView.reload(); - } else if (loadingNewIntentBoolean) { // Reset `loadingNewIntentBoolean` if this run comes from a new intent. - loadingNewIntentBoolean = false; + + // Reset `reloadOnRestartBoolean`. + reloadOnRestartBoolean = false; } } diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java index 6d317f06..78a92f87 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java @@ -30,6 +30,7 @@ import android.view.View; import android.webkit.WebView; import com.stoutner.privacybrowser.R; +import com.stoutner.privacybrowser.activities.MainWebViewActivity; public class SettingsFragment extends PreferenceFragment { private SharedPreferences.OnSharedPreferenceChangeListener preferencesListener; @@ -777,11 +778,18 @@ public class SettingsFragment extends PreferenceFragment { break; case "display_webpage_images": - // Update the icon. if (sharedPreferences.getBoolean("display_webpage_images", true)) { + // Update the icon. displayWebpageImagesPreference.setIcon(R.drawable.images_enabled); + + // `mainWebView` does not need to be reloaded because unloaded images will load automatically. + MainWebViewActivity.reloadOnRestartBoolean = false; } else { + // Update the icon. displayWebpageImagesPreference.setIcon(R.drawable.images_disabled); + + // Set `mainWebView` to reload on restart to remove the current images. + MainWebViewActivity.reloadOnRestartBoolean = true; } break; diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index bc3caf9e..cefb78e8 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -38,9 +38,9 @@ <string name="dom_storage_disabled">Almacenamiento DOM deshabilitado</string> <string name="form_data_enabled">Datos de formulario habilitados</string> <string name="form_data_disabled">Datos de fromulario deshabilitados</string> - <string name="cookies_deleted">Cookies eliminadas</string> - <string name="dom_storage_deleted">Almacenamiento DOM eliminado</string> - <string name="form_data_deleted">Datos de formulario eliminados</string> + <string name="cookies_deleted">Cookies borradas</string> + <string name="dom_storage_deleted">Almacenamiento DOM borrado</string> + <string name="form_data_deleted">Datos de formulario borrado</string> <string name="open_navigation_drawer">Abrir la caja de navegación</string> <string name="close_navigation_drawer">Cerrar la caja de navegación</string> <string name="no_title">Sin tÃtulo</string> @@ -91,13 +91,13 @@ <string name="back">Atrás</string> <string name="forward">Adelante</string> <string name="history">Historial</string> - <string name="clear_history">Eliminar historial</string> + <string name="clear_history">Borrar historial</string> <string name="bookmarks">Marcadores</string> <string name="downloads">Descargas</string> <string name="settings">Configuración</string> <string name="guide">GuÃa</string> <string name="about">Acerca de</string> - <string name="clear_and_exit">Eliminar y salir</string> + <string name="clear_and_exit">Borrar y salir</string> <!-- MainWebViewActivity Options Menu. --> <string name="javascript">Javascript</string> @@ -105,8 +105,8 @@ <string name="third_party_cookies">Cookies de terceras partes</string> <string name="dom_storage">Almacenamiento DOM</string> <string name="form_data">Datos de formulario</string> - <string name="clear_cookies">Eliminar cookies</string> - <string name="clear_dom_storage">Eliminar almacenamiento DOM</string> + <string name="clear_cookies">Borrar cookies</string> + <string name="clear_dom_storage">Borrar almacenamiento DOM</string> <string name="clear_form_data">Borrar datos de formulario</string> <string name="font_size">Tamaño de fuente</string> <string name="twenty_five_percent">25%</string> @@ -171,10 +171,10 @@ <string name="move_up">Subir</string> <string name="move_down">Bajar</string> <string name="edit">Editar</string> - <string name="delete">Eliminar</string> + <string name="delete">Borrar</string> <string name="select_all">Selectionar todo</string> - <string name="one_bookmark_deleted">1 marcador eliminado</string> - <string name="bookmarks_deleted">Marcadores eliminados</string> + <string name="one_bookmark_deleted">1 marcador borrado</string> + <string name="bookmarks_deleted">Marcadores borrados</string> <string name="undo">Deshacer</string> <!-- Bookmarks Database View. --> @@ -188,7 +188,7 @@ <string name="add">Añadir</string> <string name="domain_name">Nombre de dominio</string> <string name="domain_settings_saved">Configuración de dominio guardada</string> - <string name="domain_deleted">Dominio eliminado</string> + <string name="domain_deleted">Dominio borrado</string> <string name="domain_name_instructions">*. puede ser añadido a un dominio para incluir todos los subdominios (p.ej. *.stoutner.com)</string> <string-array name="display_website_images_array"> <item>Por defecto del sistema</item> @@ -272,6 +272,16 @@ <string name="hide_system_bars_summary">Esconder las barras de estado y de navegación en el modo de navegación a pantalla completa. Esto no funciona bien si el teclado es mostrado durante el modo de navegación a pantalla completa.</string> <string name="translucent_navigation_bar">Barra de navegación translúcida</string> <string name="translucent_navigation_bar_summary">Hacer la barra de navegación translúcida en el modo de navegación a pantalla completa.</string> + <string name="clear_everything">Borrar todo</string> + <string name="clear_everything_summary">Borra cookies, almacenamiento DOM, datos de formulario y la caché de WebView. A continuación borra manualmente los directorios âapp_webviewâ y âcacheâ.</string> + <string name="clear_cookies_preference">Borrar cookies</string> + <string name="clear_cookies_summary">Borra las cookies de primera y terceras partes.</string> + <string name="clear_dom_storage_preference">Borrar almacenamiento DOM</string> + <string name="clear_dom_storage_summary">Borra el almacenamiento DOM.</string> + <string name="clear_form_data_preference">Borrar datos de formulario</string> + <string name="clear_form_data_summary">Borra los datos de formulario.</string> + <string name="clear_cache">Borrar caché</string> + <string name="clear_cache_summary">Borra la caché de WebViewâ.</string> <string name="general">General</string> <string name="homepage">Página de inicio</string> <string name="default_font_size">Tamaño de fuente por defecto</string> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3c6a05d4..86786eb6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -274,6 +274,16 @@ <string name="hide_system_bars_summary">Nasconde la barra di stato e la barra di navigazione durante la navigazione a schermo intero. Questa opzione non funziona perfettamente se si visualizza la tastiera durante la navigazione a schermo intero.</string> <string name="translucent_navigation_bar">Barra di navigazione trasparente</string> <string name="translucent_navigation_bar_summary">Rende la barra di navigazione trasparente durante la navigazione a schermo intero.</string> + <string name="clear_everything">Elimina tutto</string> + <string name="clear_everything_summary">Cancella i cookies, il DOM storage, i dati dei moduli e la cache di WebView. Cancella completamente le cartelle âapp_webviewâ e âcacheâ.</string> + <string name="clear_cookies_preference">Elimina i cookie</string> + <string name="clear_cookies_summary">Cancella solo i cookie proprietari e di terze parti.</string> + <string name="clear_dom_storage_preference">Elimina il DOM storage</string> + <string name="clear_dom_storage_summary">Cancella solo il DOM storage.</string> + <string name="clear_form_data_preference">Elimina i dati dei moduli</string> + <string name="clear_form_data_summary">Cancella solo i dati dei moduli.</string> + <string name="clear_cache">Elimina la cache</string> + <string name="clear_cache_summary">Cancella solo la cache di WebView.</string> <string name="general">Generale</string> <string name="homepage">Homepage</string> <string name="default_font_size">Dimensione standard carattere</string> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d8eb744d..eb7d0ab9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -311,15 +311,15 @@ <string name="translucent_navigation_bar">Translucent navigation bar</string> <string name="translucent_navigation_bar_summary">Make the navigation bar translucent in full screen browsing mode.</string> <string name="clear_everything">Clear everything</string> - <string name="clear_everything_summary">Clear cookies, DOM storage, form data, and the cache. Then manually delete the entire âapp_webviewâ and âcacheâ directories.</string> + <string name="clear_everything_summary">Clears cookies, DOM storage, form data, and WebViewâs cache. Then manually deletes the entire âapp_webviewâ and âcacheâ directories.</string> <string name="clear_cookies_preference">Clear cookies</string> <string name="clear_cookies_summary">Clears first and third-party cookies.</string> <string name="clear_dom_storage_preference">Clear DOM storage</string> - <string name="clear_dom_storage_summary">Clear DOM storage.</string> + <string name="clear_dom_storage_summary">Clears DOM storage.</string> <string name="clear_form_data_preference">Clear form data</string> <string name="clear_form_data_summary">Clears form data.</string> <string name="clear_cache">Clear cache</string> - <string name="clear_cache_summary">Clear WebViewâs cache.</string> + <string name="clear_cache_summary">Clears WebViewâs cache.</string> <string name="general">General</string> <string name="homepage">Homepage</string> <string name="default_font_size">Default font size</string> -- 2.47.2