Switching from Adaptable to Provider interface.

Change-Id: I3cc09fc1959bf2ddf09d71437c33df47a113f790
This commit is contained in:
susnata
2016-04-22 10:33:48 -07:00
parent 4d7fcf96be
commit 67e9468a65
2 changed files with 94 additions and 38 deletions

View File

@@ -17,23 +17,21 @@ import android.app.Fragment;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v17.leanback.app.Adaptable;
import android.support.v17.leanback.app.GuidedStepFragment; import android.support.v17.leanback.app.GuidedStepFragment;
import android.support.v17.leanback.app.RowsFragment; import android.support.v17.leanback.app.RowsFragment;
import android.support.v17.leanback.widget.ArrayObjectAdapter; 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.HeaderItem;
import android.support.v17.leanback.widget.ImageCardView; 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.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener; import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.PageRow; import android.support.v17.leanback.widget.PageRow;
import android.support.v17.leanback.widget.Presenter; 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.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SectionRow;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -47,6 +45,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
private static final int NUM_ROWS = 8; private static final int NUM_ROWS = 8;
private static final long HEADER_ID1 = 1001; private static final long HEADER_ID1 = 1001;
private static final long HEADER_ID2 = 1002; private static final long HEADER_ID2 = 1002;
private static final long HEADER_ID3 = 1003;
private ArrayObjectAdapter mRowsAdapter; private ArrayObjectAdapter mRowsAdapter;
private BackgroundHelper mBackgroundHelper = new BackgroundHelper(); private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -132,6 +131,8 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
mRowsAdapter.add(new DividerRow()); mRowsAdapter.add(new DividerRow());
mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1"))); 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) { private ArrayObjectAdapter createListRowAdapter(int i) {
@@ -166,6 +167,14 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
"Leanback", "Leanback",
"open BrowseActivity", "open BrowseActivity",
R.drawable.gallery_photo_8)); 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; return listRowAdapter;
} }
@@ -214,6 +223,8 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
return new SampleFragment(); return new SampleFragment();
} else if (row.getHeaderItem().getId() == HEADER_ID2) { } else if (row.getHeaderItem().getId() == HEADER_ID2) {
return new SampleRowsFragment(); return new SampleRowsFragment();
} else if (row.getHeaderItem().getId() == HEADER_ID3) {
return new SampleFragment();
} }
return null; return null;
@@ -247,13 +258,35 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
setOnItemViewClickedListener(new OnItemViewClickedListener() { setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override @Override
public void onItemClicked( public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
Presenter.ViewHolder itemViewHolder, Intent intent;
Object item, Bundle bundle;
RowPresenter.ViewHolder rowViewHolder, Row row) { if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
Intent intent = new Intent( GuidedStepFragment.add(getFragmentManager(),
itemViewHolder.view.getContext(), GuidedStepActivity.class); new GuidedStepHalfScreenActivity.FirstStepFragment(),
startActivity(intent); 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 class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
} }
} }
public static class SampleFragment extends Fragment implements Adaptable { public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this); final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
@@ -339,13 +372,8 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
} }
@Override @Override
public PageFragmentAdapterImpl getAdapter(Class clazz) { public MainFragmentAdapter getMainFragmentAdapter() {
if (clazz == MainFragmentAdapter.class) {
return mMainFragmentAdapter; return mMainFragmentAdapter;
} }
return null;
} }
} }
}

View File

@@ -19,23 +19,21 @@ import android.support.v4.app.Fragment;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v17.leanback.app.Adaptable;
import android.support.v17.leanback.app.GuidedStepSupportFragment; import android.support.v17.leanback.app.GuidedStepSupportFragment;
import android.support.v17.leanback.app.RowsSupportFragment; import android.support.v17.leanback.app.RowsSupportFragment;
import android.support.v17.leanback.widget.ArrayObjectAdapter; 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.HeaderItem;
import android.support.v17.leanback.widget.ImageCardView; 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.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener; import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.PageRow; import android.support.v17.leanback.widget.PageRow;
import android.support.v17.leanback.widget.Presenter; 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.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SectionRow;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -49,6 +47,7 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
private static final int NUM_ROWS = 8; private static final int NUM_ROWS = 8;
private static final long HEADER_ID1 = 1001; private static final long HEADER_ID1 = 1001;
private static final long HEADER_ID2 = 1002; private static final long HEADER_ID2 = 1002;
private static final long HEADER_ID3 = 1003;
private ArrayObjectAdapter mRowsAdapter; private ArrayObjectAdapter mRowsAdapter;
private BackgroundHelper mBackgroundHelper = new BackgroundHelper(); private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -134,6 +133,8 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
mRowsAdapter.add(new DividerRow()); mRowsAdapter.add(new DividerRow());
mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1"))); 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) { private ArrayObjectAdapter createListRowAdapter(int i) {
@@ -168,6 +169,14 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
"Leanback", "Leanback",
"open BrowseSupportActivity", "open BrowseSupportActivity",
R.drawable.gallery_photo_8)); 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; return listRowAdapter;
} }
@@ -216,6 +225,8 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
return new SampleFragment(); return new SampleFragment();
} else if (row.getHeaderItem().getId() == HEADER_ID2) { } else if (row.getHeaderItem().getId() == HEADER_ID2) {
return new SampleRowsSupportFragment(); return new SampleRowsSupportFragment();
} else if (row.getHeaderItem().getId() == HEADER_ID3) {
return new SampleFragment();
} }
return null; return null;
@@ -249,13 +260,35 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
setOnItemViewClickedListener(new OnItemViewClickedListener() { setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override @Override
public void onItemClicked( public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
Presenter.ViewHolder itemViewHolder, Intent intent;
Object item, Bundle bundle;
RowPresenter.ViewHolder rowViewHolder, Row row) { if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
Intent intent = new Intent( GuidedStepSupportFragment.add(getFragmentManager(),
itemViewHolder.view.getContext(), GuidedStepSupportActivity.class); new GuidedStepSupportHalfScreenActivity.FirstStepFragment(),
startActivity(intent); 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 class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
} }
} }
public static class SampleFragment extends Fragment implements Adaptable { public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this); final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
@@ -341,13 +374,8 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
} }
@Override @Override
public PageFragmentAdapterImpl getAdapter(Class clazz) { public MainFragmentAdapter getMainFragmentAdapter() {
if (clazz == MainFragmentAdapter.class) {
return mMainFragmentAdapter; return mMainFragmentAdapter;
} }
return null;
} }
} }
}