Added onDisplayAreaChanged and unregister for DisplayAreaOrganizer
Notify DisplayAreaOrganzier when the registered DisplayArea has changed.
Also added the ability to unregister a DisplayAreaOrganizer
Test: DisplayAreaOrganizerTest
Bug: 152114574
Change-Id: I9e8c537f8fe6aa7f5b007ef73535294be62dd806
diff --git a/core/java/android/window/DisplayAreaOrganizer.java b/core/java/android/window/DisplayAreaOrganizer.java
index 79999bb..f3ef5a0 100644
--- a/core/java/android/window/DisplayAreaOrganizer.java
+++ b/core/java/android/window/DisplayAreaOrganizer.java
@@ -52,10 +52,27 @@
}
}
+ /**
+ * @hide
+ */
+ @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+ public void unregisterOrganizer() {
+ try {
+ getController().unregisterOrganizer(mInterface);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
public void onDisplayAreaAppeared(@NonNull DisplayAreaInfo displayAreaInfo) {}
public void onDisplayAreaVanished(@NonNull DisplayAreaInfo displayAreaInfo) {}
+ /**
+ * @hide
+ */
+ public void onDisplayAreaInfoChanged(@NonNull DisplayAreaInfo displayAreaInfo) {}
+
private final IDisplayAreaOrganizer mInterface = new IDisplayAreaOrganizer.Stub() {
@Override
@@ -67,6 +84,11 @@
public void onDisplayAreaVanished(@NonNull DisplayAreaInfo displayAreaInfo) {
DisplayAreaOrganizer.this.onDisplayAreaVanished(displayAreaInfo);
}
+
+ @Override
+ public void onDisplayAreaInfoChanged(@NonNull DisplayAreaInfo displayAreaInfo) {
+ DisplayAreaOrganizer.this.onDisplayAreaInfoChanged(displayAreaInfo);
+ }
};
private static IDisplayAreaOrganizerController getController() {