commit | eee137df1897dc510b2817d63298921aa4e987b4 | [log] [tgz] |
---|---|---|
author | Jeongik Cha <jeongik@google.com> | Wed Apr 03 22:13:14 2024 +0900 |
committer | Jeongik Cha <jeongik@google.com> | Fri Apr 05 10:13:04 2024 +0900 |
tree | 6bd700cc796da8d0d80bd3c2350c134e0fa15408 | |
parent | 7add2a46f59ff8eb53a7c151da7e0876475fdbd1 [diff] |
Add clearDisplayService in IVirtualizationServiceInternal To clean up previous display service Bug: 331708504 Test: turn off and then turn on the vm launcher app Change-Id: Ica340a250d89ed6ed4cc66370cb01db807a0e17b
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl b/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl index 65806da..84f8734 100644 --- a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl +++ b/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl
@@ -119,5 +119,6 @@ // TODO(b/330257000): Remove these functions when a display service is running with binder RPC. void setDisplayService(IBinder ibinder); + void clearDisplayService(); IBinder waitDisplayService(); }
diff --git a/virtualizationservice/src/aidl.rs b/virtualizationservice/src/aidl.rs index 9258b82..1fa634d 100644 --- a/virtualizationservice/src/aidl.rs +++ b/virtualizationservice/src/aidl.rs
@@ -205,6 +205,15 @@ Ok(()) } + fn clearDisplayService(&self) -> std::result::Result<(), binder::Status> { + check_manage_access()?; + check_use_custom_virtual_machine()?; + let state = &mut *self.state.lock().unwrap(); + state.display_service = None; + self.display_service_set.notify_all(); + Ok(()) + } + fn waitDisplayService(&self) -> std::result::Result<binder::SpIBinder, binder::Status> { check_manage_access()?; check_use_custom_virtual_machine()?;