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

Reply via email to