Update TabLayout demo to use new ViewPager functionality

Also removed an old unused layout file

BUG: 20908355
Change-Id: I95d79f7faec68122b43c68b621af4121c52c17aa
diff --git a/samples/SupportDesignDemos/res/layout/design_tabs.xml b/samples/SupportDesignDemos/res/layout/design_tabs.xml
deleted file mode 100644
index b52d808..0000000
--- a/samples/SupportDesignDemos/res/layout/design_tabs.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="?attr/actionBarSize"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:contentInsetStart="72dp"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-    <android.support.design.widget.TabLayout
-            android:id="@+id/tabs"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:tabContentStart="72dp"/>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml b/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml
index f25a3ce..11ddca6 100644
--- a/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml
+++ b/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml
@@ -54,19 +54,22 @@
                 android:id="@+id/btn_add_tab"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="@string/add_tab"/>
+                android:text="@string/add_tab"
+                android:onClick="addTab"/>
 
         <Button
                 android:id="@+id/btn_remove_tab"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="@string/remove_tab"/>
+                android:text="@string/remove_tab"
+                android:onClick="removeTab"/>
 
         <Button
                 android:id="@+id/btn_select_first_tab"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="@string/select_first_tab"/>
+                android:text="@string/select_first_tab"
+                android:onClick="selectFirstTab"/>
 
     </LinearLayout>
 
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java
index 8efccb5..26b6108 100644
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java
+++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java
@@ -21,8 +21,6 @@
 
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
-import android.support.design.widget.TabLayout.TabLayoutOnPageChangeListener;
-import android.support.design.widget.TabLayout.ViewPagerOnTabSelectedListener;
 import android.support.v4.view.PagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.AppCompatActivity;
@@ -46,6 +44,8 @@
     private ViewPager mViewPager;
     private CheesePagerAdapter mPagerAdapter;
 
+    private final Random mRandom = new Random();
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -57,50 +57,29 @@
         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 
         mTabLayout = (TabLayout) findViewById(R.id.tabs);
-
         mViewPager = (ViewPager) findViewById(R.id.tabs_viewpager);
+
         mPagerAdapter = new CheesePagerAdapter();
         mViewPager.setAdapter(mPagerAdapter);
-        mViewPager.setOnPageChangeListener(new TabLayoutOnPageChangeListener(mTabLayout));
-        mTabLayout.setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(mViewPager));
 
-        setupButtons();
+        mTabLayout.setupWithViewPager(mViewPager);
+
         setupRadioGroup();
     }
 
-    private void setupButtons() {
-        findViewById(R.id.btn_add_tab).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                addRandomTab();
-            }
-        });
-
-        findViewById(R.id.btn_remove_tab).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (mTabLayout.getTabCount() >= 1) {
-                    mTabLayout.removeTabAt(mTabLayout.getTabCount() - 1);
-                    mPagerAdapter.removeTab();
-                }
-            }
-        });
-
-        findViewById(R.id.btn_select_first_tab).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (mTabLayout.getTabCount() > 0) {
-                    mViewPager.setCurrentItem(0);
-                }
-            }
-        });
+    public void addTab(View view) {
+        String cheese = Cheeses.sCheeseStrings[mRandom.nextInt(Cheeses.sCheeseStrings.length)];
+        mPagerAdapter.addTab(cheese);
     }
 
-    private void addRandomTab() {
-        Random r = new Random();
-        String cheese = Cheeses.sCheeseStrings[r.nextInt(Cheeses.sCheeseStrings.length)];
-        mTabLayout.addTab(mTabLayout.newTab().setText(cheese));
-        mPagerAdapter.addTab(cheese);
+    public void selectFirstTab(View view) {
+        if (mTabLayout.getTabCount() > 0) {
+            mViewPager.setCurrentItem(0);
+        }
+    }
+
+    public void removeTab(View view) {
+        mPagerAdapter.removeTab();
     }
 
     private void setupRadioGroup() {
@@ -156,7 +135,6 @@
     }
 
     private static class CheesePagerAdapter extends PagerAdapter {
-
         private final ArrayList<CharSequence> mCheeses = new ArrayList<>();
 
         public void addTab(String title) {
@@ -177,21 +155,31 @@
         }
 
         @Override
+        public int getItemPosition(Object object) {
+            final Item item = (Item) object;
+            final int index = mCheeses.indexOf(item.cheese);
+            return index >= 0 ? index : POSITION_NONE;
+        }
+
+        @Override
         public Object instantiateItem(ViewGroup container, int position) {
-            TextView tv = new TextView(container.getContext());
+            final TextView tv = new TextView(container.getContext());
             tv.setText(getPageTitle(position));
             tv.setGravity(Gravity.CENTER);
             tv.setTextAppearance(tv.getContext(), R.style.TextAppearance_AppCompat_Title);
-
             container.addView(tv, ViewGroup.LayoutParams.MATCH_PARENT,
                     ViewGroup.LayoutParams.MATCH_PARENT);
 
-            return tv;
+            Item item = new Item();
+            item.cheese = mCheeses.get(position);
+            item.view = tv;
+            return item;
         }
 
         @Override
         public boolean isViewFromObject(View view, Object object) {
-            return view == object;
+            final Item item = (Item) object;
+            return item.view == view;
         }
 
         @Override
@@ -201,7 +189,13 @@
 
         @Override
         public void destroyItem(ViewGroup container, int position, Object object) {
-            container.removeView((View) object);
+            final Item item = (Item) object;
+            container.removeView(item.view);
+        }
+
+        private static class Item {
+            TextView view;
+            CharSequence cheese;
         }
     }