Support non-disposed render in tests am: d84e1ead52

Change-Id: Ief321f88e751a19244390a9d5d4d561db7901a61
diff --git a/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTestBase.java b/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTestBase.java
index 77c6d1a..a22c3bc 100644
--- a/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTestBase.java
+++ b/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTestBase.java
@@ -89,6 +89,16 @@
  */
 public class RenderTestBase {
 
+    /**
+     * Listener for render process.
+     */
+    public interface RenderSessionListener {
+
+        /**
+         * Called before session is disposed after rendering.
+         */
+        void beforeDisposed(RenderSession session);
+    }
     private static final String PLATFORM_DIR_PROPERTY = "platform.dir";
     private static final String RESOURCE_DIR_PROPERTY = "test_res.dir";
 
@@ -343,6 +353,14 @@
     protected static RenderResult render(com.android.ide.common.rendering.api.Bridge bridge,
             SessionParams params,
             long frameTimeNanos) {
+        return render(bridge, params, frameTimeNanos, null);
+    }
+
+    @NonNull
+    protected static RenderResult render(com.android.ide.common.rendering.api.Bridge bridge,
+            SessionParams params,
+            long frameTimeNanos,
+            @Nullable RenderSessionListener listener) {
         // TODO: Set up action bar handler properly to test menu rendering.
         // Create session params.
         System_Delegate.setBootTimeNanos(TimeUnit.MILLISECONDS.toNanos(871732800000L));
@@ -366,6 +384,9 @@
                             session.getResult().getErrorMessage());
                 }
             }
+            if (listener != null) {
+                listener.beforeDisposed(session);
+            }
 
             return RenderResult.getFromSession(session);
         } finally {