Merge "Add editable actions to Guided Step test activity." into mnc-ub-dev
This commit is contained in:
@@ -58,6 +58,7 @@
|
|||||||
|
|
||||||
<activity android:name="GuidedStepActivity"
|
<activity android:name="GuidedStepActivity"
|
||||||
android:theme="@style/Theme.Example.Leanback.GuidedStep"
|
android:theme="@style/Theme.Example.Leanback.GuidedStep"
|
||||||
|
android:windowSoftInputMode="adjustResize"
|
||||||
android:exported="true" />
|
android:exported="true" />
|
||||||
|
|
||||||
<activity android:name="DetailsPresenterSelectionActivity"
|
<activity android:name="DetailsPresenterSelectionActivity"
|
||||||
|
|||||||
@@ -47,9 +47,12 @@
|
|||||||
<string name="guidedstep_first_description">First step of guided sequence</string>
|
<string name="guidedstep_first_description">First step of guided sequence</string>
|
||||||
<string name="guidedstep_first_breadcrumb">Guided Steps</string>
|
<string name="guidedstep_first_breadcrumb">Guided Steps</string>
|
||||||
<string name="guidedstep_second_title">Second</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_second_breadcrumb">Guided Steps</string>
|
||||||
<string name="guidedstep_third_title">Third</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_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>
|
</resources>
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ import android.content.Intent;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.v4.app.ActivityOptionsCompat;
|
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.ArrayObjectAdapter;
|
||||||
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;
|
||||||
@@ -31,6 +37,9 @@ import android.util.Log;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
|
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
|
||||||
private static final String TAG = "leanback.BrowseFragment";
|
private static final String TAG = "leanback.BrowseFragment";
|
||||||
|
|
||||||
@@ -125,26 +134,77 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
|||||||
@Override
|
@Override
|
||||||
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
|
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
|
||||||
RowPresenter.ViewHolder rowViewHolder, Row row) {
|
RowPresenter.ViewHolder rowViewHolder, Row row) {
|
||||||
|
ConfirmPhotoView step = new ConfirmPhotoView((PhotoItem)item,
|
||||||
Intent intent;
|
(ImageCardView)itemViewHolder.view);
|
||||||
Bundle bundle;
|
GuidedStepFragment.add(getFragmentManager(), step);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.app.FragmentManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v17.leanback.app.GuidedStepFragment;
|
import android.support.v17.leanback.app.GuidedStepFragment;
|
||||||
import android.support.v17.leanback.widget.GuidedAction;
|
import android.support.v17.leanback.widget.GuidedAction;
|
||||||
import android.support.v17.leanback.widget.GuidanceStylist;
|
import android.support.v17.leanback.widget.GuidanceStylist;
|
||||||
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
|
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.List;
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity that showcases different aspects of GuidedStepFragments.
|
* 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 CONTINUE = 1;
|
||||||
private static final int BACK = 2;
|
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 OPTION_CHECK_SET_ID = 10;
|
||||||
private static final int DEFAULT_OPTION = 0;
|
private static final int DEFAULT_OPTION = 0;
|
||||||
private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
|
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,
|
private static final int[] OPTION_DRAWABLES = { R.drawable.ic_guidedstep_option_a,
|
||||||
R.drawable.ic_guidedstep_option_b, R.drawable.ic_guidedstep_option_c };
|
R.drawable.ic_guidedstep_option_b, R.drawable.ic_guidedstep_option_c };
|
||||||
|
|
||||||
|
private static final String TAG = GuidedStepActivity.class.getSimpleName();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
Log.v(TAG, "onCreate");
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
GuidedStepFragment.add(getFragmentManager(), new FirstStepFragment());
|
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) {
|
private static void addAction(List<GuidedAction> actions, long id, String title, String desc) {
|
||||||
@@ -60,6 +92,15 @@ public class GuidedStepActivity extends Activity {
|
|||||||
.build());
|
.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,
|
private static void addCheckedAction(List<GuidedAction> actions, int iconResId, Context context,
|
||||||
String title, String desc) {
|
String title, String desc) {
|
||||||
actions.add(new GuidedAction.Builder()
|
actions.add(new GuidedAction.Builder()
|
||||||
@@ -107,8 +148,6 @@ public class GuidedStepActivity extends Activity {
|
|||||||
|
|
||||||
private static class SecondStepFragment extends GuidedStepFragment {
|
private static class SecondStepFragment extends GuidedStepFragment {
|
||||||
|
|
||||||
private int mSelectedOption = DEFAULT_OPTION;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||||
String title = getString(R.string.guidedstep_second_title);
|
String title = getString(R.string.guidedstep_second_title);
|
||||||
@@ -118,6 +157,35 @@ public class GuidedStepActivity extends Activity {
|
|||||||
return new Guidance(title, description, breadcrumb, icon);
|
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
|
@Override
|
||||||
public GuidanceStylist onCreateGuidanceStylist() {
|
public GuidanceStylist onCreateGuidanceStylist() {
|
||||||
return new GuidanceStylist() {
|
return new GuidanceStylist() {
|
||||||
@@ -153,7 +221,7 @@ public class GuidedStepActivity extends Activity {
|
|||||||
public void onGuidedActionClicked(GuidedAction action) {
|
public void onGuidedActionClicked(GuidedAction action) {
|
||||||
if (action.getId() == CONTINUE) {
|
if (action.getId() == CONTINUE) {
|
||||||
FragmentManager fm = getFragmentManager();
|
FragmentManager fm = getFragmentManager();
|
||||||
GuidedStepFragment.add(fm, new ThirdStepFragment(mSelectedOption));
|
GuidedStepFragment.add(fm, new FourthStepFragment(mSelectedOption));
|
||||||
} else {
|
} else {
|
||||||
mSelectedOption = getSelectedActionPosition()-1;
|
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;
|
private final int mOption;
|
||||||
|
|
||||||
public ThirdStepFragment(int option) {
|
public FourthStepFragment(int option) {
|
||||||
mOption = option;
|
mOption = option;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
public Guidance onCreateGuidance(Bundle savedInstanceState) {
|
||||||
String title = getString(R.string.guidedstep_third_title);
|
String title = getString(R.string.guidedstep_fourth_title);
|
||||||
String breadcrumb = getString(R.string.guidedstep_third_breadcrumb);
|
String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
|
||||||
String description = "You chose: " + OPTION_NAMES[mOption];
|
String description = "You chose: " + OPTION_NAMES[mOption];
|
||||||
Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
|
Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
|
||||||
return new Guidance(title, description, breadcrumb, 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.ControlButtonPresenterSelector;
|
||||||
import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
|
import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class PlaybackOverlayFragment extends android.support.v17.leanback.app.PlaybackOverlayFragment {
|
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
|
@Override
|
||||||
public int getUpdatePeriod() {
|
public int getUpdatePeriod() {
|
||||||
int totalTime = getControlsRow().getTotalTime();
|
int totalTime = getControlsRow().getTotalTime();
|
||||||
if (getView() == null || totalTime <= 0) {
|
if (getView() == null || getView().getWidth() == 0 || totalTime <= 0) {
|
||||||
return 1000;
|
return 1000;
|
||||||
}
|
}
|
||||||
return Math.max(16, totalTime / getView().getWidth());
|
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);
|
HeaderItem header = new HeaderItem(i, "Row " + i);
|
||||||
getAdapter().set(ROW_CONTROLS + 1 + i, new ListRow(header, listRowAdapter));
|
getAdapter().set(ROW_CONTROLS + 1 + i, new ListRow(header, listRowAdapter));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
mGlue.setFadingEnabled(true);
|
||||||
mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
|
mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user