Remove getLeash from WindowContainerToken

If the WindowContainer was revoked from a registered organizer, the
client could still call getLeash to system server and control the leash
for the WindowContainer. Instead, pass the leash back to the client in
onTaskAppeared and onDisplayAreaAppeared. Once the WindowContainer is
revoked from the client, the leash will reference the old
WindowContainer SurfaceControl and will not be able to control the
WindowContainer anymore.

Test: Split screen
Test: DisplayAreaOrganizerTest
Test: WindowOrganizerTest
Bug: 154558563
Change-Id: I1f6eb987a2a3fecfef912a3009ee52989c85ff4b
diff --git a/core/java/android/window/IDisplayAreaOrganizer.aidl b/core/java/android/window/IDisplayAreaOrganizer.aidl
index 39a9235..5e3e5e8 100644
--- a/core/java/android/window/IDisplayAreaOrganizer.aidl
+++ b/core/java/android/window/IDisplayAreaOrganizer.aidl
@@ -17,13 +17,14 @@
 package android.window;
 
 import android.window.DisplayAreaInfo;
+import android.view.SurfaceControl;
 
 /**
  * Interface for WindowManager to delegate control of display areas.
  * {@hide}
  */
 oneway interface IDisplayAreaOrganizer {
-    void onDisplayAreaAppeared(in DisplayAreaInfo displayAreaInfo);
+    void onDisplayAreaAppeared(in DisplayAreaInfo displayAreaInfo, in SurfaceControl leash);
     void onDisplayAreaVanished(in DisplayAreaInfo displayAreaInfo);
     void onDisplayAreaInfoChanged(in DisplayAreaInfo displayAreaInfo);
 }