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

Change subject: Tabs in feed.
......................................................................


Tabs in feed.

Placed a "tabs" icon in the toolbar of the feed, for convenient access to
the user's list of active tabs, by strong user demand.

Also update the icon of the Tabs button to be a "dynamic" icon based on
the number of tabs.

Bug: T142712
Change-Id: If55ed75d3a389d4d80128ea7ee347ace0009b36f
---
M app/src/main/java/org/wikipedia/MainActivity.java
M app/src/main/java/org/wikipedia/feed/FeedFragment.java
M app/src/main/java/org/wikipedia/overhaul/OverhaulFragment.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
M app/src/main/java/org/wikipedia/util/ResourceUtil.java
A app/src/main/res/drawable/ic_tab_list_1.xml
A app/src/main/res/drawable/ic_tab_list_2.xml
A app/src/main/res/drawable/ic_tab_list_3.xml
A app/src/main/res/drawable/ic_tab_list_4.xml
A app/src/main/res/drawable/ic_tab_list_5.xml
A app/src/main/res/drawable/ic_tab_list_6.xml
A app/src/main/res/drawable/ic_tab_list_7.xml
A app/src/main/res/drawable/ic_tab_list_8.xml
A app/src/main/res/drawable/ic_tab_list_9.xml
A app/src/main/res/drawable/ic_tab_list_9_plus.xml
M app/src/main/res/menu/menu_feed.xml
M app/src/main/res/menu/menu_page_actions.xml
18 files changed, 207 insertions(+), 19 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/app/src/main/java/org/wikipedia/MainActivity.java 
b/app/src/main/java/org/wikipedia/MainActivity.java
index 889160e..b6c691d 100644
--- a/app/src/main/java/org/wikipedia/MainActivity.java
+++ b/app/src/main/java/org/wikipedia/MainActivity.java
@@ -768,6 +768,23 @@
         loadPage(title, historyEntry, position, allowStateLoss, mustBeEmpty);
     }
 
+    @TargetApi(17)
+    private void showTabList() {
+        if (isDestroyed()) {
+            return;
+        }
+        pushFragment(new PageFragment());
+        fragmentContainerView.post(new Runnable() {
+            @Override
+            public void run() {
+                PageFragment frag = getCurPageFragment();
+                if (frag != null) {
+                    frag.showTabList();
+                }
+            }
+        });
+    }
+
     public void showLinkPreview(PageTitle title, int entrySource) {
         showLinkPreview(title, entrySource, null);
     }
@@ -850,15 +867,17 @@
                 && ((BackPressedHandler) getTopFragment()).onBackPressed()) {
             return;
         }
-        if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
-            beforeFragmentChanged();
-            getSupportFragmentManager().popBackStackImmediate();
-            afterFragmentChanged();
-            if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
-                return;
-            }
-        }
-        finish();
+        popFragment();
+    }
+
+    @Override
+    public void onPagePopFragment() {
+        popFragment();
+    }
+
+    @Override
+    public void onFeedTabListRequested() {
+        showTabList();
     }
 
     @Override
@@ -1104,6 +1123,18 @@
         return this;
     }
 
+    private void popFragment() {
+        if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
+            beforeFragmentChanged();
+            getSupportFragmentManager().popBackStackImmediate();
+            afterFragmentChanged();
+            if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
+                return;
+            }
+        }
+        finish();
+    }
+
     private void download(@NonNull FeaturedImage image) {
         setPendingDownload(null);
         new MediaDownloadReceiver(MainActivity.this).download(image);
diff --git a/app/src/main/java/org/wikipedia/feed/FeedFragment.java 
b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
index 12c3257..228bd21 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
@@ -34,6 +34,7 @@
 import org.wikipedia.settings.Prefs;
 import org.wikipedia.util.DimenUtil;
 import org.wikipedia.util.FeedbackUtil;
+import org.wikipedia.util.ResourceUtil;
 
 import java.util.List;
 
@@ -57,6 +58,7 @@
     private boolean searchIconVisible;
 
     public interface Callback {
+        void onFeedTabListRequested();
         void onFeedSearchRequested();
         void onFeedVoiceSearchRequested();
         void onFeedSelectPage(HistoryEntry entry);
@@ -141,8 +143,20 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         menu.clear();
-        if (searchIconVisible) {
-            inflater.inflate(R.menu.menu_feed, menu);
+        inflater.inflate(R.menu.menu_feed, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        MenuItem searchItem = menu.findItem(R.id.menu_feed_search);
+        MenuItem tabsItem = menu.findItem(R.id.menu_feed_tabs);
+        if (searchItem != null) {
+            searchItem.setVisible(searchIconVisible);
+        }
+        if (tabsItem != null) {
+            int tabCount = Prefs.getTabs().size();
+            tabsItem.setIcon(ResourceUtil.getTabListIcon(getContext(), 
tabCount));
+            tabsItem.setVisible(tabCount > 0);
         }
     }
 
@@ -154,6 +168,11 @@
                     getCallback().onFeedSearchRequested();
                 }
                 return true;
+            case R.id.menu_feed_tabs:
+                if (getCallback() != null) {
+                    getCallback().onFeedTabListRequested();
+                }
+                return true;
             default:
                 return super.onOptionsItemSelected(item);
         }
diff --git a/app/src/main/java/org/wikipedia/overhaul/OverhaulFragment.java 
b/app/src/main/java/org/wikipedia/overhaul/OverhaulFragment.java
index e4656f6..779e82b 100644
--- a/app/src/main/java/org/wikipedia/overhaul/OverhaulFragment.java
+++ b/app/src/main/java/org/wikipedia/overhaul/OverhaulFragment.java
@@ -73,6 +73,11 @@
         super.onDestroyView();
     }
 
+    @Override
+    public void onFeedTabListRequested() {
+        // todo: [overhaul] tab list.
+    }
+
     @Override public void onFeedSearchRequested() {
         
searchFragment.setInvokeSource(OverhaulSearchFragment.InvokeSource.FEED_BAR);
         searchFragment.openSearch();
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index a747921..f95461e 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -70,6 +70,7 @@
 import org.wikipedia.tooltip.ToolTipUtil;
 import org.wikipedia.util.DimenUtil;
 import org.wikipedia.util.FeedbackUtil;
+import org.wikipedia.util.ResourceUtil;
 import org.wikipedia.util.ShareUtil;
 import org.wikipedia.util.ThrowableUtil;
 import org.wikipedia.util.UriUtil;
@@ -113,6 +114,7 @@
                                     @NonNull 
AddToReadingListDialog.InvokeSource source);
         @Nullable View onPageGetContentView();
         @Nullable View onPageGetTabsContainerView();
+        void onPagePopFragment();
         @Nullable AppCompatActivity getActivity();
         void onPageUpdateNavDrawerSelection(@NonNull Fragment fragment);
     }
@@ -435,6 +437,12 @@
             tabsProvider.exitTabMode();
             tabFunnel.logCancel(tabList.size());
             leadImagesHandler.setAnimationPaused(false);
+            if (tabsProvider.shouldPopFragment()) {
+                Callback callback = callback();
+                if (callback != null) {
+                    callback.onPagePopFragment();
+                }
+            }
         }
 
         @Override
@@ -472,10 +480,14 @@
             tabList.remove(position);
             tabFunnel.logClose(tabList.size(), position);
             tabsProvider.invalidate();
+            getActivity().supportInvalidateOptionsMenu();
             if (tabList.size() == 0) {
                 tabFunnel.logCancel(tabList.size());
+                tabsProvider.exitTabMode();
                 // and if the last tab was closed, then finish the activity!
-                getActivity().finish();
+                if (!tabsProvider.shouldPopFragment()) {
+                    getActivity().finish();
+                }
             } else if (position == tabList.size()) {
                 // if it's the topmost tab, then load the topmost page in the 
next tab.
                 pageLoadStrategy.setBackStack(getCurrentTab().getBackStack());
@@ -520,6 +532,10 @@
 
     public void invalidateTabs() {
         tabsProvider.invalidate();
+    }
+
+    public void showTabList() {
+        tabsProvider.enterTabMode(true);
     }
 
     public void openInNewBackgroundTabFromMenu(PageTitle title, HistoryEntry 
entry) {
@@ -669,6 +685,9 @@
         MenuItem contentIssues = menu.findItem(R.id.menu_page_content_issues);
         MenuItem similarTitles = menu.findItem(R.id.menu_page_similar_titles);
         MenuItem themeChooserItem = 
menu.findItem(R.id.menu_page_font_and_theme);
+        MenuItem tabsItem = menu.findItem(R.id.menu_page_show_tabs);
+
+        tabsItem.setIcon(ResourceUtil.getTabListIcon(getContext(), 
tabList.size()));
 
         if (pageLoadStrategy.isLoading() || errorState) {
             otherLangItem.setEnabled(false);
@@ -723,7 +742,7 @@
                 showThemeChooser();
                 return true;
             case R.id.menu_page_show_tabs:
-                tabsProvider.enterTabMode();
+                tabsProvider.enterTabMode(false);
                 return true;
             default:
                 return super.onOptionsItemSelected(item);
@@ -952,6 +971,7 @@
             tabsProvider.invalidate();
             // add the requested page to its backstack
             tab.getBackStack().add(new PageBackStackItem(title, entry));
+            getActivity().supportInvalidateOptionsMenu();
         } else {
             getTopMostTab().getBackStack().add(new PageBackStackItem(title, 
entry));
         }
diff --git a/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java 
b/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
index 0362ab6..a7aad41 100644
--- a/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
+++ b/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
@@ -58,6 +58,7 @@
     private boolean isActionModeDismissedIndirectly;
 
     private List<Tab> tabList;
+    private boolean launchedExternally;
 
     @NonNull
     private TabsProviderListener providerListener = new 
DefaultTabsProviderListener();
@@ -78,6 +79,7 @@
         tabContainerView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                isActionModeDismissedIndirectly = true;
                 providerListener.onCancelTabView();
             }
         });
@@ -101,16 +103,21 @@
         return false;
     }
 
-    public void enterTabMode() {
-        enterTabMode(null);
+    public void enterTabMode(boolean launchedExternally) {
+        enterTabMode(launchedExternally, null);
         providerListener.onEnterTabView();
+    }
+
+    public boolean shouldPopFragment() {
+        return launchedExternally && !isActionModeDismissedIndirectly;
     }
 
     private boolean isTabMode() {
         return tabActionMode != null;
     }
 
-    private void enterTabMode(@Nullable Runnable onTabModeEntered) {
+    private void enterTabMode(boolean launchedExternally, @Nullable Runnable 
onTabModeEntered) {
+        this.launchedExternally = launchedExternally;
         if (isTabMode()) {
             // already inside action mode...
             // but make sure to update the list of tabs.
@@ -177,7 +184,6 @@
             if (!isActionModeDismissedIndirectly) {
                 providerListener.onCancelTabView();
             }
-            isActionModeDismissedIndirectly = false;
         }
 
         @NonNull
@@ -193,7 +199,7 @@
     }
 
     public void showAndHideTabs() {
-        enterTabMode(new Runnable() {
+        enterTabMode(false, new Runnable() {
             private final int animDelay = 500;
 
             @Override
diff --git a/app/src/main/java/org/wikipedia/util/ResourceUtil.java 
b/app/src/main/java/org/wikipedia/util/ResourceUtil.java
index 0caa4ac..d912c01 100644
--- a/app/src/main/java/org/wikipedia/util/ResourceUtil.java
+++ b/app/src/main/java/org/wikipedia/util/ResourceUtil.java
@@ -7,9 +7,12 @@
 import android.net.Uri;
 import android.support.annotation.AnyRes;
 import android.support.annotation.ArrayRes;
+import android.support.annotation.DrawableRes;
 import android.support.annotation.IdRes;
 import android.support.annotation.NonNull;
 import android.util.TypedValue;
+
+import org.wikipedia.R;
 
 public final class ResourceUtil {
     private static final int NO_ID = 0;
@@ -30,6 +33,18 @@
         return ids;
     }
 
+    @DrawableRes
+    public static int getTabListIcon(@NonNull Context context, int numTabs) {
+        final int maxTabIcon = 9;
+        if (numTabs <= 0) {
+            return R.drawable.ic_tab_list_white_24dp;
+        } else if (numTabs > maxTabIcon) {
+            return R.drawable.ic_tab_list_9_plus;
+        } else {
+            return context.getResources().getIdentifier("ic_tab_list_" + 
numTabs, "drawable", context.getPackageName());
+        }
+    }
+
     /**
      * Resolves the resource ID of a theme-dependent attribute (for example, a 
color value
      * that changes based on the selected theme)
diff --git a/app/src/main/res/drawable/ic_tab_list_1.xml 
b/app/src/main/res/drawable/ic_tab_list_1.xml
new file mode 100644
index 0000000..6e84bdf
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_1.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM14,15h2L16,5h-4v2h2v8zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 
0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_2.xml 
b/app/src/main/res/drawable/ic_tab_list_2.xml
new file mode 100644
index 0000000..2be6e50
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_2.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14zM17,13h-4v-2h2c1.1,0 2,-0.89 2,-2L17,7c0,-1.11 
-0.9,-2 -2,-2h-4v2h4v2h-2c-1.1,0 -2,0.89 -2,2v4h6v-2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_3.xml 
b/app/src/main/res/drawable/ic_tab_list_3.xml
new file mode 100644
index 0000000..80524e6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_3.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 
2,2h14c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14zM3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM17,13v-1.5c0,-0.83 -0.67,-1.5 -1.5,-1.5 0.83,0 1.5,-0.67 
1.5,-1.5L17,7c0,-1.11 -0.9,-2 -2,-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1,0 2,-0.89 
2,-2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_4.xml 
b/app/src/main/res/drawable/ic_tab_list_4.xml
new file mode 100644
index 0000000..8b5ae6c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_4.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM15,15h2L17,5h-2v4h-2L13,5h-2v6h4v4zM21,1L7,1c-1.1,0 -2,0.9 
-2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_5.xml 
b/app/src/main/res/drawable/ic_tab_list_5.xml
new file mode 100644
index 0000000..11eb718
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_5.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 
2,2h14c1.1,0 2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14zM3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM17,13v-2c0,-1.11 -0.9,-2 
-2,-2h-2L13,7h4L17,5h-6v6h4v2h-4v2h4c1.1,0 2,-0.89 2,-2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_6.xml 
b/app/src/main/res/drawable/ic_tab_list_6.xml
new file mode 100644
index 0000000..e954b30
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_6.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM21,17L7,17L7,3h14v14zM13,15h2c1.1,0 
2,-0.89 2,-2v-2c0,-1.11 -0.9,-2 -2,-2h-2L13,7h4L17,5h-4c-1.1,0 -2,0.89 
-2,2v6c0,1.11 0.9,2 2,2zM13,11h2v2h-2v-2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_7.xml 
b/app/src/main/res/drawable/ic_tab_list_7.xml
new file mode 100644
index 0000000..14e4718
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_7.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,17L7,17L7,3h14v14zM13,15l4,-8L17,5h-6v2h4l-4,8h2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_8.xml 
b/app/src/main/res/drawable/ic_tab_list_8.xml
new file mode 100644
index 0000000..8559f90
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_8.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM21,17L7,17L7,3h14v14zM13,15h2c1.1,0 
2,-0.89 2,-2v-1.5c0,-0.83 -0.67,-1.5 -1.5,-1.5 0.83,0 1.5,-0.67 
1.5,-1.5L17,7c0,-1.11 -0.9,-2 -2,-2h-2c-1.1,0 -2,0.89 -2,2v1.5c0,0.83 0.67,1.5 
1.5,1.5 -0.83,0 -1.5,0.67 -1.5,1.5L11,13c0,1.11 0.9,2 
2,2zM13,7h2v2h-2L13,7zM13,11h2v2h-2v-2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_9.xml 
b/app/src/main/res/drawable/ic_tab_list_9.xml
new file mode 100644
index 0000000..a052a54
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_9.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 -2,-2zM21,17L7,17L7,3h14v14zM15,5h-2c-1.1,0 
-2,0.89 -2,2v2c0,1.11 0.9,2 2,2h2v2h-4v2h4c1.1,0 2,-0.89 2,-2L17,7c0,-1.11 
-0.9,-2 -2,-2zM15,9h-2L13,7h2v2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_tab_list_9_plus.xml 
b/app/src/main/res/drawable/ic_tab_list_9_plus.xml
new file mode 100644
index 0000000..29c95dd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tab_list_9_plus.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,5L1,5v16c0,1.1 0.9,2 
2,2h16v-2L3,21L3,5zM14,12L14,8c0,-1.11 -0.9,-2 -2,-2h-1c-1.1,0 -2,0.89 
-2,2v1c0,1.11 0.9,2 2,2h1v1L9,12v2h3c1.1,0 2,-0.89 
2,-2zM11,9L11,8h1v1h-1zM21,1L7,1c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 
2,-0.9 2,-2L23,3c0,-1.1 -0.9,-2 
-2,-2zM21,9h-2L19,7h-2v2h-2v2h2v2h2v-2h2v6L7,17L7,3h14v6z"/>
+</vector>
diff --git a/app/src/main/res/menu/menu_feed.xml 
b/app/src/main/res/menu/menu_feed.xml
index 050383e..88f3b7d 100644
--- a/app/src/main/res/menu/menu_feed.xml
+++ b/app/src/main/res/menu/menu_feed.xml
@@ -2,6 +2,9 @@
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android";
       xmlns:app="http://schemas.android.com/apk/res-auto";>
+    <item android:id="@+id/menu_feed_tabs"
+        android:title="@string/menu_page_show_tabs"
+        app:showAsAction="ifRoom"/>
     <item android:id="@+id/menu_feed_search"
         android:title="@string/search_hint"
         android:icon="@drawable/ic_search_white_24dp"
diff --git a/app/src/main/res/menu/menu_page_actions.xml 
b/app/src/main/res/menu/menu_page_actions.xml
index 0e0565c..69d434b 100644
--- a/app/src/main/res/menu/menu_page_actions.xml
+++ b/app/src/main/res/menu/menu_page_actions.xml
@@ -5,7 +5,6 @@
 
     <item android:id="@+id/menu_page_show_tabs"
           android:title="@string/menu_page_show_tabs"
-          android:icon="@drawable/ic_tab_list_white_24dp"
           app:showAsAction="ifRoom" />
     <item android:id="@+id/menu_page_other_languages"
           android:title="@string/menu_page_other_languages"

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If55ed75d3a389d4d80128ea7ee347ace0009b36f
Gerrit-PatchSet: 9
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to