Dbrant has uploaded a new change for review.
https://gerrit.wikimedia.org/r/177238
Change subject: Allow enabling/disabling images in pages.
......................................................................
Allow enabling/disabling images in pages.
Implement a preference that enables or disables images throughout the app
(within pages, lead images, thumbnails, etc.)
Change-Id: Ifde8cf4934cc182607f11ef636b8b4eabd5ea599
---
M wikipedia/res/layout/item_full_search_result.xml
M wikipedia/res/layout/item_history_entry.xml
M wikipedia/res/layout/item_saved_page_entry.xml
M wikipedia/res/layout/item_search_result.xml
M wikipedia/res/values-qq/strings.xml
M wikipedia/res/values/preference_keys.xml
M wikipedia/res/values/strings.xml
M wikipedia/res/xml/preferences.xml
M wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
M wikipedia/src/main/java/org/wikipedia/history/HistoryFragment.java
M wikipedia/src/main/java/org/wikipedia/nearby/NearbyFragment.java
M wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
M wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
M wikipedia/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
M wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
M wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
M wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
17 files changed, 55 insertions(+), 27 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/38/177238/1
diff --git a/wikipedia/res/layout/item_full_search_result.xml
b/wikipedia/res/layout/item_full_search_result.xml
index c706f81..801bfdc 100644
--- a/wikipedia/res/layout/item_full_search_result.xml
+++ b/wikipedia/res/layout/item_full_search_result.xml
@@ -12,6 +12,7 @@
android:layout_height="match_parent"
android:layout_gravity="top"
android:contentDescription="@null"
+ android:src="@drawable/ic_pageimage_placeholder"
android:scaleType="centerCrop" />
<LinearLayout
diff --git a/wikipedia/res/layout/item_history_entry.xml
b/wikipedia/res/layout/item_history_entry.xml
index 7c3b168..1b6a197 100644
--- a/wikipedia/res/layout/item_history_entry.xml
+++ b/wikipedia/res/layout/item_history_entry.xml
@@ -29,6 +29,7 @@
android:layout_width="32dp"
android:layout_margin="8dp"
android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_pageimage_placeholder"
android:background="@android:color/transparent"
/>
diff --git a/wikipedia/res/layout/item_saved_page_entry.xml
b/wikipedia/res/layout/item_saved_page_entry.xml
index ce8bfda..68d0294 100644
--- a/wikipedia/res/layout/item_saved_page_entry.xml
+++ b/wikipedia/res/layout/item_saved_page_entry.xml
@@ -29,6 +29,7 @@
android:layout_width="32dp"
android:layout_margin="8dp"
android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_pageimage_placeholder"
android:background="@android:color/transparent"
/>
diff --git a/wikipedia/res/layout/item_search_result.xml
b/wikipedia/res/layout/item_search_result.xml
index f95b8a1..b7b4487 100644
--- a/wikipedia/res/layout/item_search_result.xml
+++ b/wikipedia/res/layout/item_search_result.xml
@@ -8,6 +8,8 @@
android:id="@+id/result_image"
android:layout_width="@dimen/defaultListItemSize"
android:layout_height="@dimen/defaultListItemSize"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_pageimage_placeholder"
android:scaleType="centerCrop"/>
<TextView android:id="@+id/result_text"
android:layout_width="match_parent"
diff --git a/wikipedia/res/values-qq/strings.xml
b/wikipedia/res/values-qq/strings.xml
index 8a89e5c..f097a46 100644
--- a/wikipedia/res/values-qq/strings.xml
+++ b/wikipedia/res/values-qq/strings.xml
@@ -357,4 +357,6 @@
Preceded by {{msg-wm|Wikipedia-android-strings-alpha update notification
title}}.</string>
<string name="dialog_close_description">Button description for the close
image button. The text is mainly for screen readers.
{{Identical|Close}}</string>
+ <string name="preference_title_show_images">Preference title for selecting
whether images are loaded in pages</string>
+ <string name="preference_summary_show_images">Description of the preference
for whether images are loaded, mentioning that this setting should be disabled
if the user\'s internet connection is slow, or if their data plan is limited or
restricted.</string>
</resources>
diff --git a/wikipedia/res/values/preference_keys.xml
b/wikipedia/res/values/preference_keys.xml
index 1cf70bf..bd71d3d 100644
--- a/wikipedia/res/values/preference_keys.xml
+++ b/wikipedia/res/values/preference_keys.xml
@@ -19,4 +19,5 @@
<string name="preference_channel">channel</string>
<string name="preference_language_mru">languageMru</string>
<string name="preference_know_toc_drawer">knowToC</string>
+ <string name="preference_show_images">showImages</string>
</resources>
diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index 0e15c6a..ef91c03 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -276,4 +276,6 @@
<string name="alpha_update_notification_title">New alpha update
available</string>
<string name="alpha_update_notification_text">Tap to download</string>
<string name="dialog_close_description">Close</string>
+ <string name="preference_title_show_images">Show images</string>
+ <string name="preference_summary_show_images">Enable or disable loading of
images in pages. Uncheck this setting if your internet connection is slow, or
if your data plan is limited.</string>
</resources>
diff --git a/wikipedia/res/xml/preferences.xml
b/wikipedia/res/xml/preferences.xml
index 6cc2dbf..46c2a1c 100644
--- a/wikipedia/res/xml/preferences.xml
+++ b/wikipedia/res/xml/preferences.xml
@@ -12,6 +12,12 @@
android:title="@string/preference_title_eventlogging_opt_in"
android:summary="@string/preference_summary_eventlogging_opt_in"
/>
+ <org.wikipedia.settings.CheckBoxPreferenceMultiLine
+ android:key="@string/preference_show_images"
+ android:defaultValue="true"
+ android:title="@string/preference_title_show_images"
+ android:summary="@string/preference_summary_show_images"
+ />
<org.wikipedia.settings.PreferenceMultiLine
android:key="@string/preference_key_logout"
android:title="@string/preference_title_logout"
diff --git a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
index 92fbfd6..601c8c2 100644
--- a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
+++ b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
@@ -596,4 +596,8 @@
prefs.edit().putString(PrefKeys.getLanguageMru(),
TextUtils.join(",", languageMruList)).apply();
}
}
+
+ public boolean showImages() {
+ return prefs.getBoolean(PrefKeys.getShowImages(), true);
+ }
}
diff --git a/wikipedia/src/main/java/org/wikipedia/history/HistoryFragment.java
b/wikipedia/src/main/java/org/wikipedia/history/HistoryFragment.java
index 24e88b2..161e2c7 100644
--- a/wikipedia/src/main/java/org/wikipedia/history/HistoryFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/history/HistoryFragment.java
@@ -261,11 +261,13 @@
source.setImageResource(getImageForSource(entry.getSource()));
view.setTag(entry);
- Picasso.with(getActivity())
-
.load(cursor.getString(HistoryEntryContentProvider.COL_INDEX_IMAGE))
- .placeholder(R.drawable.ic_pageimage_placeholder)
- .error(R.drawable.ic_pageimage_placeholder)
- .into(thumbnail);
+ if (app.showImages()) {
+ Picasso.with(getActivity())
+
.load(cursor.getString(HistoryEntryContentProvider.COL_INDEX_IMAGE))
+ .placeholder(R.drawable.ic_pageimage_placeholder)
+ .error(R.drawable.ic_pageimage_placeholder)
+ .into(thumbnail);
+ }
// Check the previous item, see if the times differ enough
// If they do, display the section header.
diff --git a/wikipedia/src/main/java/org/wikipedia/nearby/NearbyFragment.java
b/wikipedia/src/main/java/org/wikipedia/nearby/NearbyFragment.java
index ba81a9c..04c3836 100644
--- a/wikipedia/src/main/java/org/wikipedia/nearby/NearbyFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/nearby/NearbyFragment.java
@@ -596,11 +596,13 @@
viewHolder.thumbnail.setEnabled(false);
}
- Picasso.with(getActivity())
- .load(nearbyPage.getThumblUrl())
- .placeholder(R.drawable.ic_pageimage_placeholder)
- .error(R.drawable.ic_pageimage_placeholder)
- .into(viewHolder.thumbnail);
+ if (app.showImages()) {
+ Picasso.with(getActivity())
+ .load(nearbyPage.getThumblUrl())
+ .placeholder(R.drawable.ic_pageimage_placeholder)
+ .error(R.drawable.ic_pageimage_placeholder)
+ .into(viewHolder.thumbnail);
+ }
return convertView;
}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
b/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
index f51c69d..9f482cf 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
@@ -32,13 +32,17 @@
@Override
public RequestBuilder buildRequest(Api api) {
- return api.action("mobileview")
+ RequestBuilder builder = api.action("mobileview")
.param("page", title.getPrefixedText())
.param("prop", "text|sections")
.param("onlyrequestedsections", "1") // Stupid mediawiki &
stupid backwardscompat
.param("sections", sectionsRequested)
.param("sectionprop", "toclevel|line|anchor")
.param("noheadings", "true");
+ if (!app.showImages()) {
+ builder.param("noimages", "true");
+ }
+ return builder;
}
@Override
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
index 88310e9..3e30d18 100644
---
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
+++
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
@@ -247,7 +247,7 @@
public void beginLayout(OnLeadImageLayoutListener listener) {
String thumbUrl =
parentFragment.getFragment().getPage().getPageProperties().getLeadImageUrl();
- if (displayHeight < MIN_SCREEN_HEIGHT_DP) {
+ if (!WikipediaApp.getInstance().showImages() || displayHeight <
MIN_SCREEN_HEIGHT_DP) {
// disable the lead image completely
leadImagesEnabled = false;
} else {
diff --git
a/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
b/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
index 2ca2947..bfb8f5a 100644
--- a/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
@@ -245,11 +245,13 @@
title.setText(entry.getTitle().getDisplayText());
view.setTag(entry);
- Picasso.with(getActivity())
-
.load(cursor.getString(SavedPageContentProvider.COL_INDEX_IMAGE))
- .placeholder(R.drawable.ic_pageimage_placeholder)
- .error(R.drawable.ic_pageimage_placeholder)
- .into(thumbnail);
+ if (app.showImages()) {
+ Picasso.with(getActivity())
+
.load(cursor.getString(SavedPageContentProvider.COL_INDEX_IMAGE))
+ .placeholder(R.drawable.ic_pageimage_placeholder)
+ .error(R.drawable.ic_pageimage_placeholder)
+ .into(thumbnail);
+ }
// If this page title's first letter is different from the
previous title's
// first letter, then display the heading.
diff --git
a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
index 7da3079..cdf3f90 100644
--- a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java
@@ -293,11 +293,7 @@
ImageView imageView = (ImageView)
convertView.findViewById(R.id.result_image);
String thumbnail = result.getThumbUrl();
- if (thumbnail == null) {
- Picasso.with(parent.getContext())
- .load(R.drawable.ic_pageimage_placeholder)
- .into(imageView);
- } else {
+ if (app.showImages() && thumbnail != null) {
Picasso.with(parent.getContext())
.load(thumbnail)
.placeholder(R.drawable.ic_pageimage_placeholder)
diff --git
a/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
b/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
index 1a57d7f..5621063 100644
--- a/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/search/TitleSearchFragment.java
@@ -242,11 +242,7 @@
ImageView imageView = (ImageView)
convertView.findViewById(R.id.result_image);
String thumbnail = pageImagesCache.get(title.getPrefixedText());
- if (thumbnail == null) {
- Picasso.with(getActivity())
- .load(R.drawable.ic_pageimage_placeholder)
- .into(imageView);
- } else {
+ if (app.showImages() && thumbnail != null) {
Picasso.with(getActivity())
.load(thumbnail)
.placeholder(R.drawable.ic_pageimage_placeholder)
diff --git a/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
b/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
index a425477..799294a 100644
--- a/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
+++ b/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
@@ -21,6 +21,7 @@
private static String PREFERENCE_CHANNEL;
private static String PREFERENCE_LANGUAGE_MRU;
private static String PREFERENCE_KNOW_TOC_DRAWER;
+ private static String PREFERENCE_SHOW_IMAGES;
private PrefKeys() { }
@@ -42,6 +43,7 @@
PREFERENCE_CHANNEL = resources.getString(R.string.preference_channel);
PREFERENCE_LANGUAGE_MRU =
resources.getString(R.string.preference_language_mru);
PREFERENCE_KNOW_TOC_DRAWER =
resources.getString(R.string.preference_know_toc_drawer);
+ PREFERENCE_SHOW_IMAGES =
resources.getString(R.string.preference_show_images);
}
public static String getContentLanguageKey() {
@@ -107,4 +109,8 @@
public static String getKnowTocDrawer() {
return PREFERENCE_KNOW_TOC_DRAWER;
}
+
+ public static String getShowImages() {
+ return PREFERENCE_SHOW_IMAGES;
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/177238
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifde8cf4934cc182607f11ef636b8b4eabd5ea599
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits