[MediaWiki-commits] [Gerrit] Read more suggestions for main page - change (apps...wikipedia)
Dbrant has submitted this change and it was merged.
Change subject: Read more suggestions for main page
..
Read more suggestions for main page
On the main page, display three did you mean results based
on a single entry from the user's history.
We're looking at the last history entry that is not of source
main page or random.
Change-Id: Ia4568e6a1f3e350de05629af954ad8a5649b05cd
---
M wikipedia/src/main/java/org/wikipedia/page/Page.java
M
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
A
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
M wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
4 files changed, 94 insertions(+), 10 deletions(-)
Approvals:
Dbrant: Looks good to me, approved
diff --git a/wikipedia/src/main/java/org/wikipedia/page/Page.java
b/wikipedia/src/main/java/org/wikipedia/page/Page.java
index 9b3e407..4dbd72c 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/Page.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/Page.java
@@ -57,9 +57,7 @@
}
public boolean couldHaveReadMoreSection() {
-return !getPageProperties().isMainPage()
-&& !getTitle().isFilePage()
-&& !getTitle().isSpecial();
+return (!getTitle().isFilePage() && !getTitle().isSpecial());
}
@Override
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
b/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
index 04e77c3..25d4b76 100644
---
a/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++
b/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -1,6 +1,7 @@
package org.wikipedia.page.bottomcontent;
import android.text.Html;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -191,7 +192,7 @@
public void beginLayout() {
setupAttribution();
if (parentFragment.getPage().couldHaveReadMoreSection()) {
-requestReadMoreItems(activity.getLayoutInflater());
+preRequestReadMoreItems(activity.getLayoutInflater());
} else {
bottomContentContainer.findViewById(R.id.read_more_container).setVisibility(View.GONE);
layoutContent();
@@ -259,19 +260,46 @@
}
}
-private void requestReadMoreItems(final LayoutInflater layoutInflater) {
-new SuggestionsTask(app.getAPIForSite(pageTitle.getSite()),
pageTitle.getSite(),
-pageTitle.getPrefixedText()) {
+private void preRequestReadMoreItems(final LayoutInflater layoutInflater) {
+if (parentFragment.getPage().isMainPage()) {
+new MainPageReadMoreTopicTask(activity) {
+@Override
+public void onFinish(PageTitle myTitle) {
+requestReadMoreItems(layoutInflater, myTitle);
+}
+
+@Override
+public void onCatch(Throwable caught) {
+// Read More titles are expendable.
+Log.w(TAG, "Error while getting Read More topic for main
page.", caught);
+// but lay out the bottom content anyway:
+layoutContent();
+}
+}.execute();
+} else {
+requestReadMoreItems(layoutInflater, pageTitle);
+}
+}
+
+private void requestReadMoreItems(final LayoutInflater layoutInflater,
+ final PageTitle myTitle) {
+if (myTitle == null || TextUtils.isEmpty(myTitle.getPrefixedText())) {
+hideReadMore();
+layoutContent();
+return;
+}
+new SuggestionsTask(app.getAPIForSite(myTitle.getSite()),
myTitle.getSite(),
+myTitle.getPrefixedText()) {
@Override
public void onFinish(SearchResults results) {
readMoreItems = results;
if (!readMoreItems.getPageTitles().isEmpty()) {
// If there are results, set up section and make sure it's
visible
setupReadMoreSection(layoutInflater, readMoreItems);
-readMoreContainer.setVisibility(View.VISIBLE);
+showReadMore();
} else {
// If there's no results, just hide the section
-readMoreContainer.setVisibility(View.GONE);
+hideReadMore();
}
layoutContent();
}
@@ -286,6 +314,14 @@
}.execute();
}
+private void hideReadMore() {
+readMoreContainer.setVisibility(View.GONE);
+}
+
+private void showReadMore() {
+readMoreContainer.setVisibility(Vie
[MediaWiki-commits] [Gerrit] Read more suggestions for main page - change (apps...wikipedia)
BearND has uploaded a new change for review.
https://gerrit.wikimedia.org/r/192353
Change subject: Read more suggestions for main page
..
Read more suggestions for main page
On the main page, display three did you mean results based
on a single entry from the user's history.
We're looking at the last history entry that is not of source
main page or random.
Change-Id: Ia4568e6a1f3e350de05629af954ad8a5649b05cd
---
M wikipedia/src/main/java/org/wikipedia/page/Page.java
M wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
M
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
A
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
M wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
5 files changed, 94 insertions(+), 8 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/53/192353/1
diff --git a/wikipedia/src/main/java/org/wikipedia/page/Page.java
b/wikipedia/src/main/java/org/wikipedia/page/Page.java
index f22fff6..c2410f7 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/Page.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/Page.java
@@ -57,9 +57,7 @@
}
public boolean couldHaveReadMoreSection() {
-return !getPageProperties().isMainPage()
-&& !getTitle().isFilePage()
-&& !getTitle().isSpecial();
+return (!getTitle().isFilePage() && !getTitle().isSpecial());
}
@Override
diff --git a/wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
b/wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
index f1e8891..9cb66c6 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
@@ -1,7 +1,13 @@
package org.wikipedia.page;
+import android.content.ContentProviderClient;
+import android.content.Context;
+import android.database.Cursor;
+import android.os.RemoteException;
+
import org.wikipedia.PageTitle;
import org.wikipedia.Site;
+import org.wikipedia.history.HistoryEntry;
import org.wikipedia.search.FullSearchArticlesTask;
import org.mediawiki.api.json.Api;
import org.mediawiki.api.json.ApiResult;
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
b/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
index ba480c7..cffc3af 100644
---
a/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++
b/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -1,6 +1,7 @@
package org.wikipedia.page.bottomcontent;
import android.text.Html;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -191,7 +192,7 @@
public void beginLayout() {
setupAttribution();
if (parentFragment.getPage().couldHaveReadMoreSection()) {
-requestReadMoreItems(activity.getLayoutInflater());
+preRequestReadMoreItems(activity.getLayoutInflater());
} else {
bottomContentContainer.findViewById(R.id.read_more_container).setVisibility(View.GONE);
layoutContent();
@@ -253,9 +254,36 @@
pageLicenseText.setMovementMethod(new
LinkMovementMethodExt(linkHandler));
}
-private void requestReadMoreItems(final LayoutInflater layoutInflater) {
-new SuggestionsTask(app.getAPIForSite(pageTitle.getSite()),
pageTitle.getSite(),
-pageTitle.getPrefixedText()) {
+private void preRequestReadMoreItems(final LayoutInflater layoutInflater) {
+if (parentFragment.getPage().getPageProperties().isMainPage()) {
+new MainPageReadMoreTopicTask(activity) {
+@Override
+public void onFinish(PageTitle myTitle) {
+requestReadMoreItems(layoutInflater, myTitle);
+}
+
+@Override
+public void onCatch(Throwable caught) {
+// Read More titles are expendable.
+Log.w(TAG, "Error while getting Read More topic for main
page.", caught);
+// but lay out the bottom content anyway:
+layoutContent();
+}
+}.execute();
+} else {
+requestReadMoreItems(layoutInflater, pageTitle);
+}
+}
+
+private void requestReadMoreItems(final LayoutInflater layoutInflater,
+ final PageTitle myTitle) {
+if (myTitle == null || TextUtils.isEmpty(myTitle.getPrefixedText())) {
+hideReadMore();
+layoutContent();
+return;
+}
+new SuggestionsTask(app.getAPIForSite(myTitle.getSite()),
myTitle.getSite(),
+
