GuidedStepFragment sample: add id to radio/checkbox
So they can be auto saved/restored.
Bug 27978256
Change-Id: I7d829063d6953acc4573f495fd9893300630656c
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
index 02da218..27b7984 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
@@ -329,6 +329,12 @@
}
@Override
+ public void onStart() {
+ super.onStart();
+ mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
+ }
+
+ @Override
public void onViewCreated(View view, Bundle savedInstanceState) {
setEntranceTransitionState(mEntranceTransitionState);
}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java
index 4dadfef..15af18f 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java
@@ -55,8 +55,11 @@
private static final int NEW_PAYMENT = 7;
private static final int PAYMENT_EXPIRE = 8;
- private static final int OPTION_CHECK_SET_ID = 10;
- private static final int DEFAULT_OPTION = 0;
+ private static final long RADIO_ID_BASE = 0;
+ private static final long CHECKBOX_ID_BASE = 100;
+
+ private static final long DEFAULT_OPTION = RADIO_ID_BASE;
+
private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
private static final String[] OPTION_DESCRIPTIONS = { "Here's one thing you can do",
"Here's another thing you can do", "Here's one more thing you can do" };
@@ -164,9 +167,10 @@
.build());
}
- private static void addCheckedAction(List<GuidedAction> actions, Context context,
+ private static void addCheckedAction(List<GuidedAction> actions, long id, Context context,
String title, String desc, int checkSetId) {
actions.add(new GuidedAction.Builder()
+ .id(id)
.title(title)
.description(desc)
.checkSetId(checkSetId)
@@ -406,7 +410,7 @@
GuidedAction payments = findActionById(PAYMENT);
payments.getSubActions().clear();
for (int i = 0; i < sCards.size(); i++) {
- addCheckedAction(payments.getSubActions(), getActivity(), sCards.get(i), "",
+ addCheckedAction(payments.getSubActions(), -1, getActivity(), sCards.get(i), "",
GuidedAction.DEFAULT_CHECK_SET_ID);
if (i == sSelectedCard) {
payments.getSubActions().get(i).setChecked(true);
@@ -441,7 +445,7 @@
public static class ThirdStepFragment extends GuidedStepFragment {
- private int mSelectedOption = DEFAULT_OPTION;
+ private long mSelectedOption = DEFAULT_OPTION;
@Override
public Guidance onCreateGuidance(Bundle savedInstanceState) {
@@ -464,8 +468,8 @@
@Override
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
- String desc = "The description can be quite long as well. ";
- desc += "Just be sure to set multilineDescription to true in the GuidedAction.";
+ String desc = "The description can be quite long as well. " +
+ "Just be sure to set multilineDescription to true in the GuidedAction.";
actions.add(new GuidedAction.Builder()
.title("Note that Guided Actions can have titles that are quite long.")
.description(desc)
@@ -475,14 +479,14 @@
.focusable(false)
.build());
for (int i = 0; i < OPTION_NAMES.length; i++) {
- addCheckedAction(actions, getActivity(), OPTION_NAMES[i],
+ addCheckedAction(actions, RADIO_ID_BASE + i, getActivity(), OPTION_NAMES[i],
OPTION_DESCRIPTIONS[i], GuidedAction.DEFAULT_CHECK_SET_ID);
if (i == DEFAULT_OPTION) {
actions.get(actions.size() -1).setChecked(true);
}
}
for (int i = 0; i < OPTION_NAMES.length; i++) {
- addCheckedAction(actions, getActivity(), OPTION_NAMES[i],
+ addCheckedAction(actions, CHECKBOX_ID_BASE + i, getActivity(), OPTION_NAMES[i],
OPTION_DESCRIPTIONS[i], GuidedAction.CHECKBOX_CHECK_SET_ID);
}
}
@@ -500,11 +504,11 @@
FragmentManager fm = getFragmentManager();
FourthStepFragment f = new FourthStepFragment();
Bundle arguments = new Bundle();
- arguments.putInt(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
+ arguments.putLong(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
f.setArguments(arguments);
GuidedStepFragment.add(fm, f, R.id.lb_guidedstep_host);
} else if (action.getCheckSetId() == GuidedAction.DEFAULT_CHECK_SET_ID) {
- mSelectedOption = getSelectedActionPosition()-1;
+ mSelectedOption = action.getId();
}
}
@@ -516,17 +520,17 @@
public FourthStepFragment() {
}
- public int getOption() {
+ public long getOption() {
Bundle b = getArguments();
if (b == null) return 0;
- return b.getInt(EXTRA_OPTION, 0);
+ return b.getLong(EXTRA_OPTION, 0);
}
@Override
public Guidance onCreateGuidance(Bundle savedInstanceState) {
String title = getString(R.string.guidedstep_fourth_title);
String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
- String description = "You chose: " + OPTION_NAMES[getOption()];
+ String description = "You chose: " + OPTION_NAMES[(int) getOption()];
Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
return new Guidance(title, description, breadcrumb, icon);
}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java
index 497ee31c..6aaaa69 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java
@@ -57,8 +57,11 @@
private static final int NEW_PAYMENT = 7;
private static final int PAYMENT_EXPIRE = 8;
- private static final int OPTION_CHECK_SET_ID = 10;
- private static final int DEFAULT_OPTION = 0;
+ private static final long RADIO_ID_BASE = 0;
+ private static final long CHECKBOX_ID_BASE = 100;
+
+ private static final long DEFAULT_OPTION = RADIO_ID_BASE;
+
private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
private static final String[] OPTION_DESCRIPTIONS = { "Here's one thing you can do",
"Here's another thing you can do", "Here's one more thing you can do" };
@@ -166,9 +169,10 @@
.build());
}
- private static void addCheckedAction(List<GuidedAction> actions, Context context,
+ private static void addCheckedAction(List<GuidedAction> actions, long id, Context context,
String title, String desc, int checkSetId) {
actions.add(new GuidedAction.Builder()
+ .id(id)
.title(title)
.description(desc)
.checkSetId(checkSetId)
@@ -408,7 +412,7 @@
GuidedAction payments = findActionById(PAYMENT);
payments.getSubActions().clear();
for (int i = 0; i < sCards.size(); i++) {
- addCheckedAction(payments.getSubActions(), getActivity(), sCards.get(i), "",
+ addCheckedAction(payments.getSubActions(), -1, getActivity(), sCards.get(i), "",
GuidedAction.DEFAULT_CHECK_SET_ID);
if (i == sSelectedCard) {
payments.getSubActions().get(i).setChecked(true);
@@ -443,7 +447,7 @@
public static class ThirdStepFragment extends GuidedStepSupportFragment {
- private int mSelectedOption = DEFAULT_OPTION;
+ private long mSelectedOption = DEFAULT_OPTION;
@Override
public Guidance onCreateGuidance(Bundle savedInstanceState) {
@@ -466,8 +470,8 @@
@Override
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
- String desc = "The description can be quite long as well. ";
- desc += "Just be sure to set multilineDescription to true in the GuidedAction.";
+ String desc = "The description can be quite long as well. " +
+ "Just be sure to set multilineDescription to true in the GuidedAction.";
actions.add(new GuidedAction.Builder()
.title("Note that Guided Actions can have titles that are quite long.")
.description(desc)
@@ -477,14 +481,14 @@
.focusable(false)
.build());
for (int i = 0; i < OPTION_NAMES.length; i++) {
- addCheckedAction(actions, getActivity(), OPTION_NAMES[i],
+ addCheckedAction(actions, RADIO_ID_BASE + i, getActivity(), OPTION_NAMES[i],
OPTION_DESCRIPTIONS[i], GuidedAction.DEFAULT_CHECK_SET_ID);
if (i == DEFAULT_OPTION) {
actions.get(actions.size() -1).setChecked(true);
}
}
for (int i = 0; i < OPTION_NAMES.length; i++) {
- addCheckedAction(actions, getActivity(), OPTION_NAMES[i],
+ addCheckedAction(actions, CHECKBOX_ID_BASE + i, getActivity(), OPTION_NAMES[i],
OPTION_DESCRIPTIONS[i], GuidedAction.CHECKBOX_CHECK_SET_ID);
}
}
@@ -502,11 +506,11 @@
FragmentManager fm = getFragmentManager();
FourthStepFragment f = new FourthStepFragment();
Bundle arguments = new Bundle();
- arguments.putInt(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
+ arguments.putLong(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
f.setArguments(arguments);
GuidedStepSupportFragment.add(fm, f, R.id.lb_guidedstep_host);
} else if (action.getCheckSetId() == GuidedAction.DEFAULT_CHECK_SET_ID) {
- mSelectedOption = getSelectedActionPosition()-1;
+ mSelectedOption = action.getId();
}
}
@@ -518,17 +522,17 @@
public FourthStepFragment() {
}
- public int getOption() {
+ public long getOption() {
Bundle b = getArguments();
if (b == null) return 0;
- return b.getInt(EXTRA_OPTION, 0);
+ return b.getLong(EXTRA_OPTION, 0);
}
@Override
public Guidance onCreateGuidance(Bundle savedInstanceState) {
String title = getString(R.string.guidedstep_fourth_title);
String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
- String description = "You chose: " + OPTION_NAMES[getOption()];
+ String description = "You chose: " + OPTION_NAMES[(int) getOption()];
Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
return new Guidance(title, description, breadcrumb, icon);
}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java
index f965b37..e1b01e1 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java
@@ -48,6 +48,6 @@
}
public interface PictureInPictureListener {
- void onPictureInPictureModeChanged(boolean isInPictureInPicture);
+ void onPictureInPictureModeChanged(boolean isInPictureInPictureMode);
}
}