Dbrant has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/379592 )

Change subject: Open inter-language links and Gallery links in the same tab.
......................................................................

Open inter-language links and Gallery links in the same tab.

This patch makes PageActivity provide two separate newIntent..() builders,
for loading a requested page in a new tab or the current tab.

This now allows LangLinksActivity and GalleryActivity to load their pages
in the current tab.

And in other places in the code, this makes it more explicit whether the
requested page will be loaded in a new or current tab.

Bug: T176163
Bug: T156148
Change-Id: I64da49a9b49fb19fe62f3aa146e10dbfbb2ec74e
---
M app/src/main/java/org/wikipedia/edit/preview/EditPreviewFragment.java
M app/src/main/java/org/wikipedia/feed/news/NewsFragment.java
M app/src/main/java/org/wikipedia/gallery/GalleryActivity.java
M app/src/main/java/org/wikipedia/language/LangLinksActivity.java
M app/src/main/java/org/wikipedia/main/MainFragment.java
M app/src/main/java/org/wikipedia/offline/CompilationDetailFragment.java
M app/src/main/java/org/wikipedia/page/PageActivity.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
8 files changed, 37 insertions(+), 18 deletions(-)


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

diff --git 
a/app/src/main/java/org/wikipedia/edit/preview/EditPreviewFragment.java 
b/app/src/main/java/org/wikipedia/edit/preview/EditPreviewFragment.java
index 6233058..384daee 100644
--- a/app/src/main/java/org/wikipedia/edit/preview/EditPreviewFragment.java
+++ b/app/src/main/java/org/wikipedia/edit/preview/EditPreviewFragment.java
@@ -199,7 +199,7 @@
                     showLeavingEditDialogue(new Runnable() {
                         @Override
                         public void run() {
-                            startActivity(PageActivity.newIntent(getContext(), 
new HistoryEntry(title, HistoryEntry.SOURCE_INTERNAL_LINK), title));
+                            
startActivity(PageActivity.newIntentForNewTab(getContext(), new 
HistoryEntry(title, HistoryEntry.SOURCE_INTERNAL_LINK), title));
                         }
                     });
                 }
diff --git a/app/src/main/java/org/wikipedia/feed/news/NewsFragment.java 
b/app/src/main/java/org/wikipedia/feed/news/NewsFragment.java
index 9a402a0..d367810 100644
--- a/app/src/main/java/org/wikipedia/feed/news/NewsFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/news/NewsFragment.java
@@ -132,7 +132,7 @@
     private class Callback implements ListCardItemView.Callback {
         @Override
         public void onSelectPage(@NonNull Card card, @NonNull HistoryEntry 
entry) {
-            startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+            startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
         }
 
         @Override
diff --git a/app/src/main/java/org/wikipedia/gallery/GalleryActivity.java 
b/app/src/main/java/org/wikipedia/gallery/GalleryActivity.java
index 5fb5bd1..858d9d3 100644
--- a/app/src/main/java/org/wikipedia/gallery/GalleryActivity.java
+++ b/app/src/main/java/org/wikipedia/gallery/GalleryActivity.java
@@ -424,7 +424,7 @@
     }
 
     public void finishWithPageResult(@NonNull PageTitle resultTitle, @NonNull 
HistoryEntry historyEntry) {
-        Intent intent = PageActivity.newIntent(GalleryActivity.this, 
historyEntry, resultTitle);
+        Intent intent = 
PageActivity.newIntentForCurrentTab(GalleryActivity.this, historyEntry, 
resultTitle);
         setResult(ACTIVITY_RESULT_PAGE_SELECTED, intent);
         finish();
     }
diff --git a/app/src/main/java/org/wikipedia/language/LangLinksActivity.java 
b/app/src/main/java/org/wikipedia/language/LangLinksActivity.java
index 2d82913..adb89f5 100644
--- a/app/src/main/java/org/wikipedia/language/LangLinksActivity.java
+++ b/app/src/main/java/org/wikipedia/language/LangLinksActivity.java
@@ -102,7 +102,7 @@
                 PageTitle langLink = (PageTitle) 
parent.getAdapter().getItem(position);
                 app.setMruLanguageCode(langLink.getWikiSite().languageCode());
                 HistoryEntry historyEntry = new HistoryEntry(langLink, 
HistoryEntry.SOURCE_LANGUAGE_LINK);
-                Intent intent = PageActivity.newIntent(LangLinksActivity.this, 
historyEntry, langLink);
+                Intent intent = 
PageActivity.newIntentForCurrentTab(LangLinksActivity.this, historyEntry, 
langLink);
                 setResult(ACTIVITY_RESULT_LANGLINK_SELECT, intent);
                 hideSoftKeyboard(LangLinksActivity.this);
                 finish();
diff --git a/app/src/main/java/org/wikipedia/main/MainFragment.java 
b/app/src/main/java/org/wikipedia/main/MainFragment.java
index 24ec210..e8456b8 100644
--- a/app/src/main/java/org/wikipedia/main/MainFragment.java
+++ b/app/src/main/java/org/wikipedia/main/MainFragment.java
@@ -237,7 +237,7 @@
     }
 
     @Override public void onFeedSelectPage(HistoryEntry entry) {
-        startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+        startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
     }
 
     @Override public void onFeedAddPageToList(HistoryEntry entry) {
@@ -350,7 +350,7 @@
     }
 
     @Override public void onLoadPage(PageTitle title, HistoryEntry entry) {
-        startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+        startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
     }
 
     @Override public void onClearHistory() {
@@ -376,7 +376,7 @@
 
     @Override
     public void onSearchSelectPage(@NonNull HistoryEntry entry, boolean 
inNewTab) {
-        startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+        startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
     }
 
     @Override
@@ -402,7 +402,7 @@
 
     @Override
     public void onLinkPreviewLoadPage(@NonNull PageTitle title, @NonNull 
HistoryEntry entry, boolean inNewTab) {
-        startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+        startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
     }
 
     @Override
diff --git 
a/app/src/main/java/org/wikipedia/offline/CompilationDetailFragment.java 
b/app/src/main/java/org/wikipedia/offline/CompilationDetailFragment.java
index 6e8736f..6789e72 100644
--- a/app/src/main/java/org/wikipedia/offline/CompilationDetailFragment.java
+++ b/app/src/main/java/org/wikipedia/offline/CompilationDetailFragment.java
@@ -125,7 +125,7 @@
                     WikipediaApp.getInstance().getWikiSite());
 
             HistoryEntry entry = new HistoryEntry(title, 
HistoryEntry.SOURCE_MAIN_PAGE);
-            startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+            startActivity(PageActivity.newIntentForNewTab(getContext(), entry, 
entry.getTitle()));
         } catch (IOException e) {
             L.e(e);
             FeedbackUtil.showError(getActivity(), e);
diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.java 
b/app/src/main/java/org/wikipedia/page/PageActivity.java
index 02b1841..107d119 100644
--- a/app/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/app/src/main/java/org/wikipedia/page/PageActivity.java
@@ -89,7 +89,8 @@
         LinkPreviewDialog.Callback, SearchFragment.Callback, 
ThemeChooserDialog.Callback,
         WiktionaryDialog.Callback {
 
-    public static final String ACTION_PAGE_FOR_TITLE = 
"org.wikipedia.page_for_title";
+    public static final String ACTION_LOAD_IN_NEW_TAB = 
"org.wikipedia.load_in_new_tab";
+    public static final String ACTION_LOAD_IN_CURRENT_TAB = 
"org.wikipedia.load_in_current_tab";
     public static final String ACTION_SHOW_TAB_LIST = 
"org.wikipedia.show_tab_list";
     public static final String ACTION_RESUME_READING = 
"org.wikipedia.resume_reading";
     public static final String EXTRA_PAGETITLE = "org.wikipedia.pagetitle";
@@ -235,14 +236,23 @@
     @NonNull
     public static Intent newIntent(@NonNull Context context, @NonNull String 
title) {
         PageTitle pageTitle = new PageTitle(title, 
WikipediaApp.getInstance().getWikiSite());
-        return newIntent(context, new HistoryEntry(pageTitle, 
HistoryEntry.SOURCE_INTERNAL_LINK), pageTitle);
+        return newIntentForNewTab(context, new HistoryEntry(pageTitle, 
HistoryEntry.SOURCE_INTERNAL_LINK), pageTitle);
     }
 
     @NonNull
-    public static Intent newIntent(@NonNull Context context,
-                                   @NonNull HistoryEntry entry,
-                                   @NonNull PageTitle title) {
-        return new Intent(ACTION_PAGE_FOR_TITLE)
+    public static Intent newIntentForNewTab(@NonNull Context context,
+                                            @NonNull HistoryEntry entry,
+                                            @NonNull PageTitle title) {
+        return new Intent(ACTION_LOAD_IN_NEW_TAB)
+                .setClass(context, PageActivity.class)
+                .putExtra(EXTRA_HISTORYENTRY, entry)
+                .putExtra(EXTRA_PAGETITLE, title);
+    }
+
+    public static Intent newIntentForCurrentTab(@NonNull Context context,
+                                                @NonNull HistoryEntry entry,
+                                                @NonNull PageTitle title) {
+        return new Intent(ACTION_LOAD_IN_CURRENT_TAB)
                 .setClass(context, PageActivity.class)
                 .putExtra(EXTRA_HISTORYENTRY, entry)
                 .putExtra(EXTRA_PAGETITLE, title);
@@ -266,10 +276,15 @@
             PageTitle title = wiki.titleForUri(intent.getData());
             HistoryEntry historyEntry = new HistoryEntry(title, 
HistoryEntry.SOURCE_EXTERNAL_LINK);
             loadPageInForegroundTab(title, historyEntry);
-        } else if (ACTION_PAGE_FOR_TITLE.equals(intent.getAction())) {
+        } else if (ACTION_LOAD_IN_NEW_TAB.equals(intent.getAction())
+                || ACTION_LOAD_IN_CURRENT_TAB.equals(intent.getAction())) {
             PageTitle title = intent.getParcelableExtra(EXTRA_PAGETITLE);
             HistoryEntry historyEntry = 
intent.getParcelableExtra(EXTRA_HISTORYENTRY);
-            loadPageInForegroundTab(title, historyEntry);
+            if (ACTION_LOAD_IN_NEW_TAB.equals(intent.getAction())) {
+                loadPageInForegroundTab(title, historyEntry);
+            } else if (ACTION_LOAD_IN_CURRENT_TAB.equals(intent.getAction())) {
+                loadPageInCurrentTab(title, historyEntry);
+            }
             if (intent.hasExtra(Constants.INTENT_EXTRA_REVERT_QNUMBER)) {
                 
showDescriptionEditRevertDialog(intent.getStringExtra(Constants.INTENT_EXTRA_REVERT_QNUMBER));
             }
@@ -380,6 +395,10 @@
         loadPage(title, entry, TabPosition.NEW_TAB_FOREGROUND);
     }
 
+    public void loadPageInCurrentTab(@NonNull PageTitle title, @NonNull 
HistoryEntry entry) {
+        loadPage(title, entry, TabPosition.CURRENT_TAB);
+    }
+
     public void loadMainPageInForegroundTab() {
         loadMainPage(TabPosition.NEW_TAB_FOREGROUND);
     }
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java 
b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
index 51a80bf..8460a78 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
@@ -698,7 +698,7 @@
                 PageTitle title = ReadingListDaoProxy.pageTitle(page);
                 HistoryEntry entry = new HistoryEntry(title, 
HistoryEntry.SOURCE_READING_LIST);
                 ReadingList.DAO.makeListMostRecent(readingList);
-                startActivity(PageActivity.newIntent(getContext(), entry, 
entry.getTitle()));
+                startActivity(PageActivity.newIntentForNewTab(getContext(), 
entry, entry.getTitle()));
             }
         }
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I64da49a9b49fb19fe62f3aa146e10dbfbb2ec74e
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