Switching from Adaptable to Provider interface.

Change-Id: I3cc09fc1959bf2ddf09d71437c33df47a113f790
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
index cb21c95..fdebdafa 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
@@ -17,23 +17,21 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v17.leanback.app.Adaptable;
 import android.support.v17.leanback.app.GuidedStepFragment;
 import android.support.v17.leanback.app.RowsFragment;
 import android.support.v17.leanback.widget.ArrayObjectAdapter;
+import android.support.v17.leanback.widget.DividerRow;
 import android.support.v17.leanback.widget.HeaderItem;
 import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.DividerRow;
-import android.support.v17.leanback.widget.SectionRow;
 import android.support.v17.leanback.widget.ListRow;
 import android.support.v17.leanback.widget.ListRowPresenter;
 import android.support.v17.leanback.widget.OnItemViewClickedListener;
 import android.support.v17.leanback.widget.OnItemViewSelectedListener;
 import android.support.v17.leanback.widget.PageRow;
 import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
 import android.support.v17.leanback.widget.Row;
 import android.support.v17.leanback.widget.RowPresenter;
+import android.support.v17.leanback.widget.SectionRow;
 import android.support.v4.app.ActivityOptionsCompat;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -47,6 +45,7 @@
     private static final int NUM_ROWS = 8;
     private static final long HEADER_ID1 = 1001;
     private static final long HEADER_ID2 = 1002;
+    private static final long HEADER_ID3 = 1003;
 
     private ArrayObjectAdapter mRowsAdapter;
     private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -132,6 +131,8 @@
 
         mRowsAdapter.add(new DividerRow());
         mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1")));
+
+        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID3, "Page Row 2")));
     }
 
     private ArrayObjectAdapter createListRowAdapter(int i) {
@@ -166,6 +167,14 @@
                 "Leanback",
                 "open BrowseActivity",
                 R.drawable.gallery_photo_8));
+        listRowAdapter.add(new PhotoItem(
+                "Leanback",
+                "open BrowseActivity",
+                R.drawable.gallery_photo_8));
+        listRowAdapter.add(new PhotoItem(
+                "Leanback",
+                "open BrowseActivity",
+                R.drawable.gallery_photo_8));
         return listRowAdapter;
     }
 
@@ -214,6 +223,8 @@
                 return new SampleFragment();
             } else if (row.getHeaderItem().getId() == HEADER_ID2) {
                 return new SampleRowsFragment();
+            } else if (row.getHeaderItem().getId() == HEADER_ID3) {
+                return new SampleFragment();
             }
 
             return null;
@@ -247,13 +258,35 @@
 
             setOnItemViewClickedListener(new OnItemViewClickedListener() {
                 @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    Intent intent = new Intent(
-                            itemViewHolder.view.getContext(), GuidedStepActivity.class);
-                    startActivity(intent);
+                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
+                    Intent intent;
+                    Bundle bundle;
+                    if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
+                        GuidedStepFragment.add(getFragmentManager(),
+                                new GuidedStepHalfScreenActivity.FirstStepFragment(),
+                                R.id.lb_guidedstep_host);
+                        return;
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
+                        GuidedStepFragment.add(getFragmentManager(),
+                                new GuidedStepActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
+                        return;
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
+                        intent = new Intent(getActivity(), BrowseActivity.class);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
+                                .toBundle();
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
+                        intent = new Intent(getActivity(), RowsActivity.class);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
+                                .toBundle();
+                    } else {
+                        intent = new Intent(getActivity(), DetailsActivity.class);
+                        intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
+                                getActivity(),
+                                ((ImageCardView) itemViewHolder.view).getMainImageView(),
+                                DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+                    }
+                    getActivity().startActivity(intent, bundle);
                 }
             });
         }
@@ -294,7 +327,7 @@
         }
     }
 
-    public static class SampleFragment extends Fragment implements Adaptable {
+    public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
 
         final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
 
@@ -339,13 +372,8 @@
         }
 
         @Override
-        public PageFragmentAdapterImpl getAdapter(Class clazz) {
-            if (clazz == MainFragmentAdapter.class) {
-                return mMainFragmentAdapter;
-            }
-            return null;
+        public MainFragmentAdapter getMainFragmentAdapter() {
+            return mMainFragmentAdapter;
         }
     }
-
 }
-
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
index 423c129..8a98923 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
@@ -19,23 +19,21 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v17.leanback.app.Adaptable;
 import android.support.v17.leanback.app.GuidedStepSupportFragment;
 import android.support.v17.leanback.app.RowsSupportFragment;
 import android.support.v17.leanback.widget.ArrayObjectAdapter;
+import android.support.v17.leanback.widget.DividerRow;
 import android.support.v17.leanback.widget.HeaderItem;
 import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.DividerRow;
-import android.support.v17.leanback.widget.SectionRow;
 import android.support.v17.leanback.widget.ListRow;
 import android.support.v17.leanback.widget.ListRowPresenter;
 import android.support.v17.leanback.widget.OnItemViewClickedListener;
 import android.support.v17.leanback.widget.OnItemViewSelectedListener;
 import android.support.v17.leanback.widget.PageRow;
 import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
 import android.support.v17.leanback.widget.Row;
 import android.support.v17.leanback.widget.RowPresenter;
+import android.support.v17.leanback.widget.SectionRow;
 import android.support.v4.app.ActivityOptionsCompat;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -49,6 +47,7 @@
     private static final int NUM_ROWS = 8;
     private static final long HEADER_ID1 = 1001;
     private static final long HEADER_ID2 = 1002;
+    private static final long HEADER_ID3 = 1003;
 
     private ArrayObjectAdapter mRowsAdapter;
     private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -134,6 +133,8 @@
 
         mRowsAdapter.add(new DividerRow());
         mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1")));
+
+        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID3, "Page Row 2")));
     }
 
     private ArrayObjectAdapter createListRowAdapter(int i) {
@@ -168,6 +169,14 @@
                 "Leanback",
                 "open BrowseSupportActivity",
                 R.drawable.gallery_photo_8));
+        listRowAdapter.add(new PhotoItem(
+                "Leanback",
+                "open BrowseSupportActivity",
+                R.drawable.gallery_photo_8));
+        listRowAdapter.add(new PhotoItem(
+                "Leanback",
+                "open BrowseSupportActivity",
+                R.drawable.gallery_photo_8));
         return listRowAdapter;
     }
 
@@ -216,6 +225,8 @@
                 return new SampleFragment();
             } else if (row.getHeaderItem().getId() == HEADER_ID2) {
                 return new SampleRowsSupportFragment();
+            } else if (row.getHeaderItem().getId() == HEADER_ID3) {
+                return new SampleFragment();
             }
 
             return null;
@@ -249,13 +260,35 @@
 
             setOnItemViewClickedListener(new OnItemViewClickedListener() {
                 @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    Intent intent = new Intent(
-                            itemViewHolder.view.getContext(), GuidedStepSupportActivity.class);
-                    startActivity(intent);
+                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
+                    Intent intent;
+                    Bundle bundle;
+                    if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
+                        GuidedStepSupportFragment.add(getFragmentManager(),
+                                new GuidedStepSupportHalfScreenActivity.FirstStepFragment(),
+                                R.id.lb_guidedstep_host);
+                        return;
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
+                        GuidedStepSupportFragment.add(getFragmentManager(),
+                                new GuidedStepSupportActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
+                        return;
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
+                        intent = new Intent(getActivity(), BrowseSupportActivity.class);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
+                                .toBundle();
+                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
+                        intent = new Intent(getActivity(), RowsSupportActivity.class);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
+                                .toBundle();
+                    } else {
+                        intent = new Intent(getActivity(), DetailsSupportActivity.class);
+                        intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
+                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
+                                getActivity(),
+                                ((ImageCardView) itemViewHolder.view).getMainImageView(),
+                                DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
+                    }
+                    getActivity().startActivity(intent, bundle);
                 }
             });
         }
@@ -296,7 +329,7 @@
         }
     }
 
-    public static class SampleFragment extends Fragment implements Adaptable {
+    public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
 
         final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
 
@@ -341,13 +374,8 @@
         }
 
         @Override
-        public PageFragmentAdapterImpl getAdapter(Class clazz) {
-            if (clazz == MainFragmentAdapter.class) {
-                return mMainFragmentAdapter;
-            }
-            return null;
+        public MainFragmentAdapter getMainFragmentAdapter() {
+            return mMainFragmentAdapter;
         }
     }
-
 }
-