Dbrant has uploaded a new change for review.
https://gerrit.wikimedia.org/r/232044
Change subject: Don't allow opening refs or Special pages in new tab.
......................................................................
Don't allow opening refs or Special pages in new tab.
Bug: T103992
Change-Id: Ib97e053363b098afbafd868aae71fe370a038654
---
M app/src/main/java/org/wikipedia/Utils.java
M app/src/main/java/org/wikipedia/page/PageLongPressHandler.java
2 files changed, 8 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/44/232044/1
diff --git a/app/src/main/java/org/wikipedia/Utils.java
b/app/src/main/java/org/wikipedia/Utils.java
index 37d813e..f44e369 100644
--- a/app/src/main/java/org/wikipedia/Utils.java
+++ b/app/src/main/java/org/wikipedia/Utils.java
@@ -13,6 +13,7 @@
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;
import android.text.Html;
+import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.DisplayMetrics;
import android.util.Log;
@@ -352,6 +353,11 @@
}
}
+ public static boolean isValidInternalLink(Uri uri) {
+ return ("wikipedia.org".equals(uri.getAuthority()) &&
!TextUtils.isEmpty(uri.getPath())
+ && !uri.getPath().equals("/"));
+ }
+
public static void showPrivacyPolicy(Context context) {
visitInExternalBrowser(context,
Uri.parse(context.getString(R.string.privacy_policy_url)));
}
diff --git a/app/src/main/java/org/wikipedia/page/PageLongPressHandler.java
b/app/src/main/java/org/wikipedia/page/PageLongPressHandler.java
index 9047a5a..b967c0a 100644
--- a/app/src/main/java/org/wikipedia/page/PageLongPressHandler.java
+++ b/app/src/main/java/org/wikipedia/page/PageLongPressHandler.java
@@ -43,8 +43,7 @@
WebView.HitTestResult result = ((WebView) view).getHitTestResult();
if (result.getType() == WebView.HitTestResult.SRC_ANCHOR_TYPE) {
Uri uri = Uri.parse(result.getExtra());
- final String authority = uri.getAuthority();
- if ("wikipedia.org".equals(authority)) {
+ if (Utils.isValidInternalLink(uri)) {
title = ((WebViewContextMenuListener)
contextMenuListener).getSite()
.titleForInternalLink(uri.getPath());
}
@@ -55,7 +54,7 @@
.getTitleForListPosition(info.position);
}
- if (title != null) {
+ if (title != null && !title.isSpecial()) {
Utils.hideSoftKeyboard(view);
entry = new HistoryEntry(title, historySource);
new MenuInflater(context).inflate(R.menu.menu_page_long_press,
menu);
--
To view, visit https://gerrit.wikimedia.org/r/232044
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib97e053363b098afbafd868aae71fe370a038654
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