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