BearND has uploaded a new change for review.

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

Change subject: Make disambig item clicks open linked page.
......................................................................

Make disambig item clicks open linked page.

Strangely, disambigList.setOnItemClickListener doesn't seem to work.
So, hacking this by setting click listeners on individual items instead.

Change-Id: I230baa3d1a8c7b6eceac7c518068fc601f01ec50
---
M wikipedia/src/main/java/org/wikipedia/page/DisambigListAdapter.java
M wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
A wikipedia/src/main/java/org/wikipedia/page/PageNavigator.java
3 files changed, 30 insertions(+), 24 deletions(-)


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

diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/DisambigListAdapter.java 
b/wikipedia/src/main/java/org/wikipedia/page/DisambigListAdapter.java
index 0eb8b7b..7b6269f 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/DisambigListAdapter.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/DisambigListAdapter.java
@@ -29,6 +29,7 @@
     private final ParcelableLruCache<String> pageImagesCache
             = new ParcelableLruCache<String>(MAX_CACHE_SIZE_IMAGES, 
String.class);
     private final Activity activity;
+    private final PageNavigator pageNavigator;
     private final DisambigResult[] items;
     private final WikipediaApp app;
     private final Site site;
@@ -40,9 +41,10 @@
      * @param activity The current activity.
      * @param items The objects to represent in the ListView.
      */
-    public DisambigListAdapter(Activity activity, DisambigResult[] items) {
+    public DisambigListAdapter(Activity activity, PageNavigator pageNavigator, 
DisambigResult[] items) {
         super(activity, 0, items);
         this.activity = activity;
+        this.pageNavigator = pageNavigator;
         this.items = items;
         app = (WikipediaApp) getContext().getApplicationContext();
         site = app.getPrimarySite();
@@ -177,15 +179,12 @@
         final DisambigResult item = items[position];
         holder.title.setText(item.getTitle().getPrefixedText());
 
-//        convertView.setOnClickListener(new View.OnClickListener() {
-//            @Override
-//            public void onClick(View v) {
-//                PageTitle title = item.getTitle();
-//                HistoryEntry historyEntry = new HistoryEntry(title, 
HistoryEntry.SOURCE_INTERNAL_LINK);
-////                dismiss();
-////                activity.displayNewPage(title, historyEntry);
-//            }
-//        });
+        convertView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                pageNavigator.navigateToTitle(item.getTitle());
+            }
+        });
 
         String description = null;
         String wikidataId = titleWikidataIdMap.get(item.getTitle());
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
index 5654253..862b861 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
@@ -3,10 +3,8 @@
 import org.wikipedia.PageTitle;
 import org.wikipedia.R;
 import org.wikipedia.history.HistoryEntry;
-import org.wikipedia.search.FullSearchResult;
 import android.graphics.Typeface;
 import android.view.View;
-import android.widget.AdapterView;
 import android.widget.FrameLayout;
 import android.widget.ListView;
 import android.widget.TextView;
@@ -15,13 +13,15 @@
 /**
  * A dialog to host page issues and disambig information.
  */
-class PageInfoDialog extends BottomDialog {
+class PageInfoDialog extends BottomDialog implements PageNavigator {
     private final ViewFlipper flipper;
     private final TextView disambigHeading;
     private final TextView issuesHeading;
+    private final PageActivity pageActivity;
 
     PageInfoDialog(final PageActivity activity, PageInfo pageInfo, int height) 
{
         super(activity, R.layout.dialog_page_info);
+        pageActivity = activity;
 
         View parentView = getDialogLayout();
         flipper = (ViewFlipper) 
parentView.findViewById(R.id.page_info_flipper);
@@ -41,18 +41,8 @@
 
         parentView.setLayoutParams(new 
FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, height));
 
-        disambigList.setAdapter(new DisambigListAdapter(activity, 
pageInfo.getDisambigs()));
+        disambigList.setAdapter(new DisambigListAdapter(activity, this, 
pageInfo.getDisambigs()));
         issuesList.setAdapter(new IssuesListAdapter(activity, 
pageInfo.getIssues()));
-
-        disambigList.setOnItemClickListener(new 
AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int 
position, long id) {
-                PageTitle title = ((FullSearchResult) 
disambigList.getAdapter().getItem(position)).getTitle();
-                HistoryEntry historyEntry = new HistoryEntry(title, 
HistoryEntry.SOURCE_INTERNAL_LINK);
-                dismiss();
-                activity.displayNewPage(title, historyEntry);
-            }
-        });
 
         if (pageInfo.getDisambigs().length > 0) {
             disambigHeading.setOnClickListener(new View.OnClickListener() {
@@ -99,4 +89,11 @@
         disambigHeading.setTypeface(null, Typeface.NORMAL);
         issuesHeading.setTypeface(null, Typeface.BOLD);
     }
+
+    @Override
+    public void navigateToTitle(PageTitle title) {
+        HistoryEntry historyEntry = new HistoryEntry(title, 
HistoryEntry.SOURCE_INTERNAL_LINK);
+        dismiss();
+        pageActivity.displayNewPage(title, historyEntry);
+    }
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageNavigator.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageNavigator.java
new file mode 100644
index 0000000..3ae1e7f
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageNavigator.java
@@ -0,0 +1,10 @@
+package org.wikipedia.page;
+
+import org.wikipedia.PageTitle;
+
+/**
+ *
+ */
+public interface PageNavigator {
+    void navigateToTitle(PageTitle title);
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/172426
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I230baa3d1a8c7b6eceac7c518068fc601f01ec50
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to