jenkins-bot has submitted this change and it was merged.

Change subject: Don't allow opening refs or Special pages in new tab.
......................................................................


Don't allow opening refs or Special pages in new tab.

Special pages are not supported by the mobileview API (that's
why we bounce them to an external browser in the app), and
References are external links by definition. Therefore, it's
meaningless to offer to open these links in a 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(-)

Approvals:
  Sniedzielski: Looks good to me, approved
  Niedzielski: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/app/src/main/java/org/wikipedia/Utils.java 
b/app/src/main/java/org/wikipedia/Utils.java
index 37d813e..4f86175 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 isValidPageLink(Uri uri) {
+        return ("wikipedia.org".equals(uri.getAuthority()) && 
!TextUtils.isEmpty(uri.getPath())
+                && uri.getPath().startsWith("/wiki"));
+    }
+
     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..4215e09 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.isValidPageLink(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: merged
Gerrit-Change-Id: Ib97e053363b098afbafd868aae71fe370a038654
Gerrit-PatchSet: 4
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: Sniedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to