Add editable actions to Guided Step test activity.
b/21403345 Change-Id: I29ffee64c54f44d80cbfcd62bd3a1b78f22ae117
This commit is contained in:
@@ -58,6 +58,7 @@
|
||||
|
||||
<activity android:name="GuidedStepActivity"
|
||||
android:theme="@style/Theme.Example.Leanback.GuidedStep"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:exported="true" />
|
||||
|
||||
<activity android:name="DetailsPresenterSelectionActivity"
|
||||
|
||||
@@ -47,9 +47,12 @@
|
||||
<string name="guidedstep_first_description">First step of guided sequence</string>
|
||||
<string name="guidedstep_first_breadcrumb">Guided Steps</string>
|
||||
<string name="guidedstep_second_title">Second</string>
|
||||
<string name="guidedstep_second_description">Showcasing different action configurations</string>
|
||||
<string name="guidedstep_second_description">Showcasing editable actions</string>
|
||||
<string name="guidedstep_second_breadcrumb">Guided Steps</string>
|
||||
<string name="guidedstep_third_title">Third</string>
|
||||
<string name="guidedstep_third_description">Third step of guided sequence</string>
|
||||
<string name="guidedstep_third_description">Showcasing different action configurations</string>
|
||||
<string name="guidedstep_third_breadcrumb">Guided Steps</string>
|
||||
<string name="guidedstep_fourth_title">Fourth</string>
|
||||
<string name="guidedstep_fourth_description">Fourth step of guided sequence</string>
|
||||
<string name="guidedstep_fourth_breadcrumb">Guided Steps</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,6 +17,12 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.app.FragmentManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v17.leanback.app.GuidedStepFragment;
|
||||
import android.support.v17.leanback.widget.GuidedAction;
|
||||
import android.support.v17.leanback.widget.GuidanceStylist;
|
||||
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
|
||||
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
||||
import android.support.v17.leanback.widget.HeaderItem;
|
||||
import android.support.v17.leanback.widget.ImageCardView;
|
||||
@@ -31,6 +37,9 @@ import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
|
||||
private static final String TAG = "leanback.BrowseFragment";
|
||||
|
||||
@@ -125,26 +134,77 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
@Override
|
||||
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_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);
|
||||
ConfirmPhotoView step = new ConfirmPhotoView((PhotoItem)item,
|
||||
(ImageCardView)itemViewHolder.view);
|
||||
GuidedStepFragment.add(getFragmentManager(), step);
|
||||
}
|
||||
}
|
||||
|
||||
private class ConfirmPhotoView extends GuidedStepFragment {
|
||||
private static final int CONTINUE = 1;
|
||||
private static final int BACK = 2;
|
||||
|
||||
private PhotoItem mItem;
|
||||
private ImageCardView mImageCardView;
|
||||
|
||||
private void addAction(List<GuidedAction> actions, long id, String title, String desc) {
|
||||
actions.add(new GuidedAction.Builder()
|
||||
.id(id)
|
||||
.title(title)
|
||||
.description(desc)
|
||||
.build());
|
||||
}
|
||||
|
||||
ConfirmPhotoView(PhotoItem item, ImageCardView imageCardView) {
|
||||
mItem = item;
|
||||
mImageCardView = imageCardView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||
String title = "Confirm";
|
||||
String breadcrumb = "BrowseFragment";
|
||||
String description = "Confirm intent to view this photo";
|
||||
Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
|
||||
return new Guidance(title, description, breadcrumb, icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
|
||||
addAction(actions, CONTINUE, "Continue", "Let's do it");
|
||||
addAction(actions, BACK, "Cancel", "Nevermind");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGuidedActionClicked(GuidedAction action) {
|
||||
FragmentManager fm = getFragmentManager();
|
||||
if (action.getId() == CONTINUE) {
|
||||
launchPhotoActivity(mItem, mImageCardView);
|
||||
} else {
|
||||
fm.popBackStack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void launchPhotoActivity(PhotoItem item, ImageCardView imageCardView) {
|
||||
Intent intent;
|
||||
Bundle bundle;
|
||||
if ( item.getImageResourceId() == R.drawable.gallery_photo_8) {
|
||||
intent = new Intent(getActivity(), BrowseActivity.class);
|
||||
bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
|
||||
.toBundle();
|
||||
} else if ( 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, item);
|
||||
bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
|
||||
getActivity(),
|
||||
imageCardView.getMainImageView(),
|
||||
DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
|
||||
}
|
||||
getActivity().startActivity(intent, bundle);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,15 +20,18 @@ import android.app.Activity;
|
||||
import android.app.FragmentManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.v17.leanback.app.GuidedStepFragment;
|
||||
import android.support.v17.leanback.widget.GuidedAction;
|
||||
import android.support.v17.leanback.widget.GuidanceStylist;
|
||||
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Activity that showcases different aspects of GuidedStepFragments.
|
||||
@@ -38,6 +41,9 @@ public class GuidedStepActivity extends Activity {
|
||||
private static final int CONTINUE = 1;
|
||||
private static final int BACK = 2;
|
||||
|
||||
private static final int FIRST_NAME = 1;
|
||||
private static final int LAST_NAME = 2;
|
||||
|
||||
private static final int OPTION_CHECK_SET_ID = 10;
|
||||
private static final int DEFAULT_OPTION = 0;
|
||||
private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
|
||||
@@ -46,10 +52,36 @@ public class GuidedStepActivity extends Activity {
|
||||
private static final int[] OPTION_DRAWABLES = { R.drawable.ic_guidedstep_option_a,
|
||||
R.drawable.ic_guidedstep_option_b, R.drawable.ic_guidedstep_option_c };
|
||||
|
||||
private static final String TAG = GuidedStepActivity.class.getSimpleName();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Log.v(TAG, "onCreate");
|
||||
super.onCreate(savedInstanceState);
|
||||
GuidedStepFragment.add(getFragmentManager(), new FirstStepFragment());
|
||||
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
|
||||
@Override public void onGlobalLayout() {
|
||||
//Log.v(TAG, "onGlobalLayout", new Exception());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
Log.v(TAG, "onConfigurationChanged");
|
||||
super.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
Log.v(TAG, "onSaveInstanceState");
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
Log.v(TAG, "onRestoreInstanceState");
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
}
|
||||
|
||||
private static void addAction(List<GuidedAction> actions, long id, String title, String desc) {
|
||||
@@ -60,6 +92,15 @@ public class GuidedStepActivity extends Activity {
|
||||
.build());
|
||||
}
|
||||
|
||||
private static void addEditableAction(List<GuidedAction> actions, long id, String title, String desc) {
|
||||
actions.add(new GuidedAction.Builder()
|
||||
.id(id)
|
||||
.title(title)
|
||||
.description(desc)
|
||||
.editable(true)
|
||||
.build());
|
||||
}
|
||||
|
||||
private static void addCheckedAction(List<GuidedAction> actions, int iconResId, Context context,
|
||||
String title, String desc) {
|
||||
actions.add(new GuidedAction.Builder()
|
||||
@@ -107,8 +148,6 @@ public class GuidedStepActivity extends Activity {
|
||||
|
||||
private static class SecondStepFragment extends GuidedStepFragment {
|
||||
|
||||
private int mSelectedOption = DEFAULT_OPTION;
|
||||
|
||||
@Override
|
||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||
String title = getString(R.string.guidedstep_second_title);
|
||||
@@ -118,6 +157,35 @@ public class GuidedStepActivity extends Activity {
|
||||
return new Guidance(title, description, breadcrumb, icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
|
||||
addEditableAction(actions, FIRST_NAME, "Pat", "Your first name");
|
||||
addEditableAction(actions, LAST_NAME, "Smith", "Your last name");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGuidedActionClicked(GuidedAction action) {
|
||||
if (action.getId() == LAST_NAME) {
|
||||
FragmentManager fm = getFragmentManager();
|
||||
GuidedStepFragment.add(fm, new ThirdStepFragment());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static class ThirdStepFragment extends GuidedStepFragment {
|
||||
|
||||
private int mSelectedOption = DEFAULT_OPTION;
|
||||
|
||||
@Override
|
||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||
String title = getString(R.string.guidedstep_third_title);
|
||||
String breadcrumb = getString(R.string.guidedstep_third_breadcrumb);
|
||||
String description = getString(R.string.guidedstep_third_description);
|
||||
Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
|
||||
return new Guidance(title, description, breadcrumb, icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuidanceStylist onCreateGuidanceStylist() {
|
||||
return new GuidanceStylist() {
|
||||
@@ -153,7 +221,7 @@ public class GuidedStepActivity extends Activity {
|
||||
public void onGuidedActionClicked(GuidedAction action) {
|
||||
if (action.getId() == CONTINUE) {
|
||||
FragmentManager fm = getFragmentManager();
|
||||
GuidedStepFragment.add(fm, new ThirdStepFragment(mSelectedOption));
|
||||
GuidedStepFragment.add(fm, new FourthStepFragment(mSelectedOption));
|
||||
} else {
|
||||
mSelectedOption = getSelectedActionPosition()-1;
|
||||
}
|
||||
@@ -161,17 +229,17 @@ public class GuidedStepActivity extends Activity {
|
||||
|
||||
}
|
||||
|
||||
private static class ThirdStepFragment extends GuidedStepFragment {
|
||||
private static class FourthStepFragment extends GuidedStepFragment {
|
||||
private final int mOption;
|
||||
|
||||
public ThirdStepFragment(int option) {
|
||||
public FourthStepFragment(int option) {
|
||||
mOption = option;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||
String title = getString(R.string.guidedstep_third_title);
|
||||
String breadcrumb = getString(R.string.guidedstep_third_breadcrumb);
|
||||
String title = getString(R.string.guidedstep_fourth_title);
|
||||
String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
|
||||
String description = "You chose: " + OPTION_NAMES[mOption];
|
||||
Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
|
||||
return new Guidance(title, description, breadcrumb, icon);
|
||||
|
||||
@@ -37,6 +37,9 @@ import android.support.v17.leanback.widget.OnItemViewClickedListener;
|
||||
import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
|
||||
import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class PlaybackOverlayFragment extends android.support.v17.leanback.app.PlaybackOverlayFragment {
|
||||
@@ -102,7 +105,7 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl
|
||||
@Override
|
||||
public int getUpdatePeriod() {
|
||||
int totalTime = getControlsRow().getTotalTime();
|
||||
if (getView() == null || totalTime <= 0) {
|
||||
if (getView() == null || getView().getWidth() == 0 || totalTime <= 0) {
|
||||
return 1000;
|
||||
}
|
||||
return Math.max(16, totalTime / getView().getWidth());
|
||||
@@ -149,11 +152,13 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl
|
||||
HeaderItem header = new HeaderItem(i, "Row " + i);
|
||||
getAdapter().set(ROW_CONTROLS + 1 + i, new ListRow(header, listRowAdapter));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
mGlue.setFadingEnabled(true);
|
||||
mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user