Fixed the conflict of the release methods of ActivityView & TaskEmbedder

There is a case in Bubble that we might release a un-initialized
TaskEmbedder while calling ActivityView.release() (ex. create a bubble
and don't expand it and then dismiss it) which will cause an exception.

Allow ActivityView.release() to be called at anytime and check the
initialization state before calling TaskEmbedder.release().

Bug: 155417004
Test: 1. Add bubbles and don't expands them then dimiss them
      2. Check logs.
Change-Id: I583ddd36f407c908cb63c109834940fc91c8d130
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java
index d650bbc..b749c35 100644
--- a/core/java/android/app/ActivityView.java
+++ b/core/java/android/app/ActivityView.java
@@ -360,18 +360,9 @@
     }
 
     /**
-     * Release this container. Activity launching will no longer be permitted.
-     * <p>Note: Calling this method is allowed after
-     * {@link StateCallback#onActivityViewReady(ActivityView)} callback was triggered and before
-     * {@link StateCallback#onActivityViewDestroyed(ActivityView)}.
-     *
-     * @see StateCallback
+     * Release this container if it is initialized. Activity launching will no longer be permitted.
      */
     public void release() {
-        if (!mTaskEmbedder.isInitialized()) {
-            throw new IllegalStateException(
-                    "Trying to release container that is not initialized.");
-        }
         performRelease();
     }
 
@@ -487,7 +478,9 @@
             return;
         }
         mSurfaceView.getHolder().removeCallback(mSurfaceCallback);
-        mTaskEmbedder.release();
+        if (mTaskEmbedder.isInitialized()) {
+            mTaskEmbedder.release();
+        }
         mTaskEmbedder.setListener(null);
 
         mGuard.close();
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
index 2f7ffde..46cc8c3 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
@@ -746,11 +746,7 @@
         if (mActivityView == null) {
             return;
         }
-        switch (mActivityViewStatus) {
-            case INITIALIZED:
-            case ACTIVITY_STARTED:
-                mActivityView.release();
-        }
+        mActivityView.release();
         if (mTaskId != -1) {
             try {
                 ActivityTaskManager.getService().removeTask(mTaskId);