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);
     }
 }