Merge "SupportLeanbackDemo: support delay loading page fragment data" into nyc-dev
This commit is contained in:
@@ -60,6 +60,7 @@ for line in file:
|
||||
line = line.replace('BrowseFragment', 'BrowseSupportFragment')
|
||||
line = line.replace('GuidedStepFragment', 'GuidedStepSupportFragment')
|
||||
line = line.replace('GuidedStepActivity', 'GuidedStepSupportActivity')
|
||||
line = line.replace('getActivity().getFragmentManager()', 'getActivity().getSupportFragmentManager()')
|
||||
line = line.replace('BrowseActivity', 'BrowseSupportActivity')
|
||||
line = line.replace('DetailsActivity', 'DetailsSupportActivity')
|
||||
line = line.replace('SearchActivity', 'SearchSupportActivity')
|
||||
|
||||
@@ -228,7 +228,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
public Fragment createFragment(Object rowObj) {
|
||||
Row row = (Row) rowObj;
|
||||
if (row.getHeaderItem().getId() == HEADER_ID1) {
|
||||
return new SampleFragment();
|
||||
return new SampleRowsFragment();
|
||||
} else if (row.getHeaderItem().getId() == HEADER_ID2) {
|
||||
return new SampleRowsFragment();
|
||||
} else if (row.getHeaderItem().getId() == HEADER_ID3) {
|
||||
@@ -239,30 +239,31 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
}
|
||||
}
|
||||
|
||||
public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
|
||||
|
||||
public PageFragmentAdapterImpl(SampleFragment fragment) {
|
||||
super(fragment);
|
||||
setScalingEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
getFragment().setEntranceTransitionState(state);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SampleRowsFragment extends RowsFragment {
|
||||
final CardPresenter mCardPresenter = new CardPresenter();
|
||||
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
|
||||
|
||||
public SampleRowsFragment() {
|
||||
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||
void loadFragmentData() {
|
||||
ArrayObjectAdapter adapter = (ArrayObjectAdapter) getAdapter();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
|
||||
adapter.add(row);
|
||||
}
|
||||
if (getMainFragmentAdapter() != null) {
|
||||
getMainFragmentAdapter().getFragmentHost()
|
||||
.notifyDataReady(getMainFragmentAdapter());
|
||||
}
|
||||
}
|
||||
|
||||
public SampleRowsFragment() {
|
||||
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||
setAdapter(adapter);
|
||||
// simulates late data loading:
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
loadFragmentData();
|
||||
}
|
||||
}, 500);
|
||||
|
||||
setOnItemViewClickedListener(new OnItemViewClickedListener() {
|
||||
@Override
|
||||
@@ -274,12 +275,12 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
Intent intent;
|
||||
Bundle bundle;
|
||||
if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
|
||||
GuidedStepFragment.add(getFragmentManager(),
|
||||
GuidedStepFragment.add(getActivity().getFragmentManager(),
|
||||
new GuidedStepHalfScreenActivity.FirstStepFragment(),
|
||||
R.id.lb_guidedstep_host);
|
||||
return;
|
||||
} else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
|
||||
GuidedStepFragment.add(getFragmentManager(),
|
||||
GuidedStepFragment.add(getActivity().getFragmentManager(),
|
||||
new GuidedStepActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
|
||||
return;
|
||||
} else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
|
||||
@@ -339,18 +340,25 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
}
|
||||
}
|
||||
|
||||
public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
|
||||
|
||||
public PageFragmentAdapterImpl(SampleFragment fragment) {
|
||||
super(fragment);
|
||||
setScalingEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
getFragment().setEntranceTransitionState(state);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
|
||||
|
||||
final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
|
||||
|
||||
boolean mEntranceTransitionState = true;
|
||||
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
mEntranceTransitionState = state;
|
||||
final View view = getView();
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
int visibility = state ? View.VISIBLE : View.INVISIBLE;
|
||||
view.findViewById(R.id.tv1).setVisibility(visibility);
|
||||
view.findViewById(R.id.tv2).setVisibility(visibility);
|
||||
@@ -372,15 +380,11 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
setEntranceTransitionState(mEntranceTransitionState);
|
||||
// static layout has view and data ready immediately
|
||||
mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
|
||||
mMainFragmentAdapter.getFragmentHost().notifyDataReady(mMainFragmentAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -230,7 +230,7 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
public Fragment createFragment(Object rowObj) {
|
||||
Row row = (Row) rowObj;
|
||||
if (row.getHeaderItem().getId() == HEADER_ID1) {
|
||||
return new SampleFragment();
|
||||
return new SampleRowsSupportFragment();
|
||||
} else if (row.getHeaderItem().getId() == HEADER_ID2) {
|
||||
return new SampleRowsSupportFragment();
|
||||
} else if (row.getHeaderItem().getId() == HEADER_ID3) {
|
||||
@@ -241,30 +241,31 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
}
|
||||
}
|
||||
|
||||
public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
|
||||
|
||||
public PageFragmentAdapterImpl(SampleFragment fragment) {
|
||||
super(fragment);
|
||||
setScalingEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
getFragment().setEntranceTransitionState(state);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SampleRowsSupportFragment extends RowsSupportFragment {
|
||||
final CardPresenter mCardPresenter = new CardPresenter();
|
||||
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
|
||||
|
||||
public SampleRowsSupportFragment() {
|
||||
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||
void loadFragmentData() {
|
||||
ArrayObjectAdapter adapter = (ArrayObjectAdapter) getAdapter();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
|
||||
adapter.add(row);
|
||||
}
|
||||
if (getMainFragmentAdapter() != null) {
|
||||
getMainFragmentAdapter().getFragmentHost()
|
||||
.notifyDataReady(getMainFragmentAdapter());
|
||||
}
|
||||
}
|
||||
|
||||
public SampleRowsSupportFragment() {
|
||||
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||
setAdapter(adapter);
|
||||
// simulates late data loading:
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
loadFragmentData();
|
||||
}
|
||||
}, 500);
|
||||
|
||||
setOnItemViewClickedListener(new OnItemViewClickedListener() {
|
||||
@Override
|
||||
@@ -276,12 +277,12 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
Intent intent;
|
||||
Bundle bundle;
|
||||
if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
|
||||
GuidedStepSupportFragment.add(getFragmentManager(),
|
||||
GuidedStepSupportFragment.add(getActivity().getSupportFragmentManager(),
|
||||
new GuidedStepSupportHalfScreenActivity.FirstStepFragment(),
|
||||
R.id.lb_guidedstep_host);
|
||||
return;
|
||||
} else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
|
||||
GuidedStepSupportFragment.add(getFragmentManager(),
|
||||
GuidedStepSupportFragment.add(getActivity().getSupportFragmentManager(),
|
||||
new GuidedStepSupportActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
|
||||
return;
|
||||
} else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
|
||||
@@ -341,18 +342,25 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
}
|
||||
}
|
||||
|
||||
public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
|
||||
|
||||
public PageFragmentAdapterImpl(SampleFragment fragment) {
|
||||
super(fragment);
|
||||
setScalingEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
getFragment().setEntranceTransitionState(state);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
|
||||
|
||||
final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
|
||||
|
||||
boolean mEntranceTransitionState = true;
|
||||
|
||||
public void setEntranceTransitionState(boolean state) {
|
||||
mEntranceTransitionState = state;
|
||||
final View view = getView();
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
int visibility = state ? View.VISIBLE : View.INVISIBLE;
|
||||
view.findViewById(R.id.tv1).setVisibility(visibility);
|
||||
view.findViewById(R.id.tv2).setVisibility(visibility);
|
||||
@@ -374,15 +382,11 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
setEntranceTransitionState(mEntranceTransitionState);
|
||||
// static layout has view and data ready immediately
|
||||
mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
|
||||
mMainFragmentAdapter.getFragmentHost().notifyDataReady(mMainFragmentAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user