SupportLeanbackDemo: add test case of Browse/Details enter return transition

b/17628884

Change-Id: Ia896d295dce1000313651426f077d88a1ae05ebd
diff --git a/samples/SupportLeanbackDemos/AndroidManifest.xml b/samples/SupportLeanbackDemos/AndroidManifest.xml
index 95f7a2c..68016c5 100644
--- a/samples/SupportLeanbackDemos/AndroidManifest.xml
+++ b/samples/SupportLeanbackDemos/AndroidManifest.xml
@@ -13,7 +13,8 @@
         android:theme="@style/Theme.Example.Leanback">
 
         <activity android:name="MainActivity"
-            android:label="@string/app_name">
+            android:label="@string/app_name"
+            android:theme="@style/Theme.Example.Leanback.Browse">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
@@ -25,6 +26,7 @@
         </activity>
 
         <activity android:name="DetailsActivity"
+            android:theme="@style/Theme.Example.Leanback.Details"
             android:exported="true" />
 
         <activity android:name="PlaybackOverlayActivity"
diff --git a/samples/SupportLeanbackDemos/res/values/themes.xml b/samples/SupportLeanbackDemos/res/values/themes.xml
index 121e25c..25eb47f 100644
--- a/samples/SupportLeanbackDemos/res/values/themes.xml
+++ b/samples/SupportLeanbackDemos/res/values/themes.xml
@@ -10,4 +10,8 @@
         <item name="android:windowContentTransitions">true</item>
  -->
     </style>
+    <style name="Theme.Example.Leanback.Browse" parent="Theme.Leanback.Browse">
+    </style>
+    <style name="Theme.Example.Leanback.Details" parent="Theme.Leanback.Details">
+    </style>
 </resources>
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
index 6ce5111..c44812b 100644
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
@@ -15,6 +15,7 @@
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
 import android.support.v4.app.ActivityOptionsCompat;
 import android.support.v17.leanback.widget.ArrayObjectAdapter;
 import android.support.v17.leanback.widget.HeaderItem;
@@ -33,6 +34,7 @@
 public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
     private static final String TAG = "leanback.BrowseFragment";
 
+    private static final boolean TEST_ENTRANCE_TRANSITION = true;
     private static final int NUM_ROWS = 10;
     private ArrayObjectAdapter mRowsAdapter;
 
@@ -62,6 +64,18 @@
                 Log.i(TAG, "onItemSelected: " + item + " row " + row);
             }
         });
+        if (TEST_ENTRANCE_TRANSITION) {
+            // don't run entrance transition if Activity is restored.
+            if (savedInstanceState == null) {
+                setEntranceTransitionEnabled(true);
+            }
+            // simulate delay loading data
+            new Handler().postDelayed(new Runnable() {
+                public void run() {
+                    startEntranceTransition();
+                }
+            }, 2000);
+        }
     }
 
     private void setupRows() {
@@ -84,7 +98,7 @@
             listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_5));
             listRowAdapter.add(new PhotoItem("This is a test", "Only a test", R.drawable.gallery_photo_6));
             listRowAdapter.add(new PhotoItem("Android TV", "by Google", R.drawable.gallery_photo_7));
-            listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_8));
+            listRowAdapter.add(new PhotoItem("Leanback", "click to open MainActivity", R.drawable.gallery_photo_8));
             HeaderItem header = new HeaderItem(i, "Row " + i, null);
             mRowsAdapter.add(new ListRow(header, listRowAdapter));
         }
@@ -96,13 +110,21 @@
         @Override
         public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
                 RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = new Intent(getActivity(), DetailsActivity.class);
-            intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
 
-            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                    getActivity(),
-                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                    DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+            Intent intent;
+            Bundle bundle;
+            if ( ((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
+                intent = new Intent(getActivity(), MainActivity.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);
         }
     }