[MediaWiki-commits] [Gerrit] Display native Read more section - change (apps...wikipedia)

2014-12-05 Thread Dbrant (Code Review)
Dbrant has submitted this change and it was merged.

Change subject: Display native Read more section
..


Display native Read more section

Hidden on Main page, since there we don't get useful results.
Hooked up backend task and event logging.

Change-Id: Idbe51ef33b24fd35383565b48331ef4461e4137e
---
M wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
M wikipedia/res/layout/fragment_page.xml
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
M wikipedia/src/main/java/org/wikipedia/page/SuggestionsTask.java
M 
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
M wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java
6 files changed, 256 insertions(+), 26 deletions(-)

Approvals:
  Dbrant: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java 
b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
index b143bfd..e1ae90d 100644
--- a/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
+++ b/wikipedia-it/src/main/java/org/wikipedia/test/SuggestionsTaskTests.java
@@ -4,9 +4,13 @@
 import org.wikipedia.Site;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.page.SuggestionsTask;
+import org.wikipedia.search.FullSearchArticlesTask;
 
 import android.content.Intent;
 import android.test.ActivityUnitTestCase;
+
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -18,23 +22,25 @@
 private static final int BATCH_SIZE = 3;
 private static final Site SITE = new Site(test.wikipedia.org);
 
+private WikipediaApp app;
+
 public SuggestionsTaskTests() {
 super(TestDummyActivity.class);
 }
 
-public void testFullTextSearchWithResults() throws Throwable {
+@Override
+public void setUp() throws Exception {
+super.setUp();
 startActivity(new Intent(), null, null);
+app = (WikipediaApp) 
getInstrumentation().getTargetContext().getApplicationContext();
+}
+
+public void testTask() throws Throwable {
 final CountDownLatch completionLatch = new CountDownLatch(1);
 runTestOnUiThread(new Runnable() {
 @Override
 public void run() {
-final WikipediaApp app = (WikipediaApp) 
getInstrumentation().getTargetContext().getApplicationContext();
 new SuggestionsTask(app.getAPIForSite(SITE), SITE, test) {
-@Override
-public void onCatch(Throwable caught) {
-super.onCatch(caught);
-}
-
 @Override
 public void onFinish(FullSearchResults results) {
 assertNotNull(results);
@@ -50,4 +56,41 @@
 });
 assertTrue(completionLatch.await(TASK_COMPLETION_TIMEOUT, 
TimeUnit.MILLISECONDS));
 }
+
+//
+// unit tests:
+//
+
+public void testFilterNoResults() throws Throwable {
+ListPageTitle originalResults = new ArrayListPageTitle();
+checkFilter(0, originalResults);
+}
+
+public void testFilter1ResultSameAsTitleIgnoreCase() throws Throwable {
+ListPageTitle originalResults = new ArrayListPageTitle();
+originalResults.add(new PageTitle(Test, SITE, null, null));
+checkFilter(0, originalResults);
+}
+
+public void testFilter1ResultDifferentFromTitle() throws Throwable {
+ListPageTitle originalResults = new ArrayListPageTitle();
+originalResults.add(new PageTitle(something else, SITE, null, null));
+checkFilter(1, originalResults);
+}
+
+public void testFilter4ResultsDifferentFromTitle() throws Throwable {
+ListPageTitle originalResults = new ArrayListPageTitle();
+originalResults.add(new PageTitle(something else, SITE, null, null));
+originalResults.add(new PageTitle(something else, SITE, null, null));
+originalResults.add(new PageTitle(something else, SITE, null, null));
+originalResults.add(new PageTitle(something else, SITE, null, null));
+checkFilter(BATCH_SIZE, originalResults);
+}
+
+private void checkFilter(int expected, ListPageTitle originalResults) {
+SuggestionsTask task = new SuggestionsTask(app.getAPIForSite(SITE), 
SITE, test);
+FullSearchArticlesTask.FullSearchResults searchResults = new 
FullSearchArticlesTask.FullSearchResults(originalResults, null, null);
+ListPageTitle filteredList = 
task.filterResults(searchResults).getResults();
+assertEquals(expected, filteredList.size());
+}
 }
diff --git a/wikipedia/res/layout/fragment_page.xml 
b/wikipedia/res/layout/fragment_page.xml
index c17df72..402ca01 100644
--- a/wikipedia/res/layout/fragment_page.xml
+++ 

[MediaWiki-commits] [Gerrit] Display native Read more section - change (apps...wikipedia)

2014-11-20 Thread BearND (Code Review)
BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/174821

Change subject: Display native Read more section
..

Display native Read more section

except on Main page, since that provides strange links.

(The layout at the end still needs to be fixed.
It overlaps with the attribution links.)

Change-Id: Idbe51ef33b24fd35383565b48331ef4461e4137e
---
M wikipedia/res/layout/fragment_page.xml
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
M 
wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
3 files changed, 159 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/21/174821/1

diff --git a/wikipedia/res/layout/fragment_page.xml 
b/wikipedia/res/layout/fragment_page.xml
index 182174a..7b2d433 100644
--- a/wikipedia/res/layout/fragment_page.xml
+++ b/wikipedia/res/layout/fragment_page.xml
@@ -2,10 +2,11 @@
 
 FrameLayout
 xmlns:android=http://schemas.android.com/apk/res/android;
+xmlns:tools=http://schemas.android.com/tools;
 android:layout_width=match_parent
 android:layout_height=match_parent
 android:background=?attr/page_background_color
-
+tools:context=.page.PageActivity
 org.wikipedia.views.DisableableDrawerLayout
 android:id=@+id/page_toc_drawer
 android:layout_width=match_parent
@@ -81,6 +82,26 @@
 android:background=?attr/subtle_gray_color
 android:layout_gravity=bottom
 android:visibility=invisible
+LinearLayout
+android:id=@+id/read_more_container
+android:layout_width=match_parent
+android:layout_height=wrap_content
+android:orientation=vertical
+TextView
+style=?android:textAppearanceLarge
+android:layout_width=wrap_content
+android:layout_height=wrap_content
+android:padding=16dp
+android:fontFamily=serif
+android:textSize=24sp
+android:text=@string/read_more_section
+/
+ListView
+android:id=@+id/read_more_list
+android:layout_width=match_parent
+android:layout_height=wrap_content
+/ListView
+/LinearLayout
 View
 android:layout_width=match_parent
 android:layout_height=8dp
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
index f5eb4bb..5edaf28 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
@@ -467,7 +467,8 @@
 
 // create bottom content for this page...
 new BottomContentHandler(parentFragment, bridge, webView, 
linkHandler,
-(ViewGroup) 
parentFragment.getView().findViewById(R.id.bottom_content_container));
+(ViewGroup) 
parentFragment.getView().findViewById(R.id.bottom_content_container),
+title, page.getPageProperties().isMainPage());
 
 }
 });
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 8d594e7..2833b90 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -3,28 +3,51 @@
 import android.graphics.Point;
 import android.os.Build;
 import android.text.Html;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.webkit.WebView;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.ListView;
 import android.widget.TextView;
+
+import com.squareup.picasso.Picasso;
 
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.wikipedia.PageTitle;
 import org.wikipedia.R;
 import org.wikipedia.Utils;
+import org.wikipedia.WikipediaApp;
 import org.wikipedia.bridge.CommunicationBridge;
+import org.wikipedia.history.HistoryEntry;
 import org.wikipedia.page.LinkHandler;
 import org.wikipedia.page.LinkMovementMethodExt;
 import org.wikipedia.page.Page;
+import org.wikipedia.page.PageActivity;
 import org.wikipedia.page.PageViewFragment;
+import