diff options
5 files changed, 11 insertions, 65 deletions
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java index 7185719abdd5..6affd123bfde 100644 --- a/core/java/android/hardware/display/DisplayManagerGlobal.java +++ b/core/java/android/hardware/display/DisplayManagerGlobal.java @@ -792,7 +792,6 @@ public final class DisplayManagerGlobal { public void setVirtualDisplaySurface(IVirtualDisplayCallback token, Surface surface) { try { mDm.setVirtualDisplaySurface(token, surface); - setVirtualDisplayState(token, surface != null); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } @@ -815,14 +814,6 @@ public final class DisplayManagerGlobal { } } - void setVirtualDisplayState(IVirtualDisplayCallback token, boolean isOn) { - try { - mDm.setVirtualDisplayState(token, isOn); - } catch (RemoteException ex) { - throw ex.rethrowFromSystemServer(); - } - } - void setVirtualDisplayRotation(IVirtualDisplayCallback token, @Surface.Rotation int rotation) { try { mDm.setVirtualDisplayRotation(token, rotation); diff --git a/core/java/android/hardware/display/IDisplayManager.aidl b/core/java/android/hardware/display/IDisplayManager.aidl index aa1539f69722..b612bca5671e 100644 --- a/core/java/android/hardware/display/IDisplayManager.aidl +++ b/core/java/android/hardware/display/IDisplayManager.aidl @@ -115,9 +115,6 @@ interface IDisplayManager { void releaseVirtualDisplay(in IVirtualDisplayCallback token); // No permissions required but must be same Uid as the creator. - void setVirtualDisplayState(in IVirtualDisplayCallback token, boolean isOn); - - // No permissions required but must be same Uid as the creator. void setVirtualDisplayRotation(in IVirtualDisplayCallback token, int rotation); // Get a stable metric for the device's display size. No permissions required. diff --git a/core/java/android/hardware/display/VirtualDisplay.java b/core/java/android/hardware/display/VirtualDisplay.java index 6cc938f5e6f8..32b640583734 100644 --- a/core/java/android/hardware/display/VirtualDisplay.java +++ b/core/java/android/hardware/display/VirtualDisplay.java @@ -112,18 +112,6 @@ public final class VirtualDisplay { } /** - * Sets the on/off state for a virtual display. - * - * @param isOn Whether the display should be on or off. - * @hide - */ - public void setDisplayState(boolean isOn) { - if (mToken != null) { - mGlobal.setVirtualDisplayState(mToken, isOn); - } - } - - /** * Sets the rotation of the virtual display. * * @param rotation the new rotation of the display. May be one of {@link Surface#ROTATION_0}, diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 4152ec9e26e3..e1710a3a1b5c 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -2093,16 +2093,6 @@ public final class DisplayManagerService extends SystemService { } } - private void setVirtualDisplayStateInternal(IBinder appToken, boolean isOn) { - synchronized (mSyncRoot) { - if (mVirtualDisplayAdapter == null) { - return; - } - - mVirtualDisplayAdapter.setVirtualDisplayStateLocked(appToken, isOn); - } - } - private void setVirtualDisplayRotationInternal(IBinder appToken, @Surface.Rotation int rotation) { int displayId; @@ -4615,16 +4605,6 @@ public final class DisplayManagerService extends SystemService { } @Override // Binder call - public void setVirtualDisplayState(IVirtualDisplayCallback callback, boolean isOn) { - final long token = Binder.clearCallingIdentity(); - try { - setVirtualDisplayStateInternal(callback.asBinder(), isOn); - } finally { - Binder.restoreCallingIdentity(token); - } - } - - @Override // Binder call public void setVirtualDisplayRotation(IVirtualDisplayCallback callback, @Surface.Rotation int rotation) { if (!android.companion.virtualdevice.flags.Flags.virtualDisplayRotationApi()) { diff --git a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java index 9b02f4b71ebe..e77c5ec50f8b 100644 --- a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java +++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java @@ -207,13 +207,6 @@ public class VirtualDisplayAdapter extends DisplayAdapter { return device; } - void setVirtualDisplayStateLocked(IBinder appToken, boolean isOn) { - VirtualDisplayDevice device = mVirtualDisplayDevices.get(appToken); - if (device != null) { - device.setDisplayState(isOn); - } - } - DisplayDevice getDisplayDevice(IBinder appToken) { return mVirtualDisplayDevices.get(appToken); } @@ -273,7 +266,6 @@ public class VirtualDisplayAdapter extends DisplayAdapter { private boolean mStopped; private int mPendingChanges; private Display.Mode mMode; - private boolean mIsDisplayOn; private int mDisplayIdToMirror; private boolean mIsWindowManagerMirroring; private DisplayCutout mDisplayCutout; @@ -299,9 +291,8 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mCallback = callback; mProjection = projection; mMediaProjectionCallback = mediaProjectionCallback; - mDisplayState = Display.STATE_UNKNOWN; + mDisplayState = Display.STATE_ON; mPendingChanges |= PENDING_SURFACE_CHANGE; - mIsDisplayOn = surface != null; mDisplayIdToMirror = virtualDisplayConfig.getDisplayIdToMirror(); mIsWindowManagerMirroring = virtualDisplayConfig.isWindowManagerMirroringEnabled(); } @@ -394,6 +385,8 @@ public class VirtualDisplayAdapter extends DisplayAdapter { float sdrBrightnessState, DisplayOffloadSessionImpl displayOffloadSession) { if (state != mDisplayState) { mDisplayState = state; + mInfo = null; + sendDisplayDeviceEventLocked(this, DISPLAY_DEVICE_EVENT_CHANGED); if (state == Display.STATE_OFF) { mCallback.dispatchDisplayPaused(); } else { @@ -416,12 +409,13 @@ public class VirtualDisplayAdapter extends DisplayAdapter { public void setSurfaceLocked(Surface surface) { if (!mStopped && mSurface != surface) { - if ((mSurface != null) != (surface != null)) { + if (mDisplayState == Display.STATE_ON + && ((mSurface == null) != (surface == null))) { + mInfo = null; sendDisplayDeviceEventLocked(this, DISPLAY_DEVICE_EVENT_CHANGED); } sendTraversalRequestLocked(); mSurface = surface; - mInfo = null; mPendingChanges |= PENDING_SURFACE_CHANGE; } } @@ -439,14 +433,6 @@ public class VirtualDisplayAdapter extends DisplayAdapter { } } - void setDisplayState(boolean isOn) { - if (mIsDisplayOn != isOn) { - mIsDisplayOn = isOn; - mInfo = null; - sendDisplayDeviceEventLocked(this, DISPLAY_DEVICE_EVENT_CHANGED); - } - } - public void stopLocked() { Slog.d(TAG, "Virtual Display: stopping device " + mName); setSurfaceLocked(null); @@ -567,7 +553,11 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mInfo.touch = ((mFlags & VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH) == 0) ? DisplayDeviceInfo.TOUCH_NONE : DisplayDeviceInfo.TOUCH_VIRTUAL; - mInfo.state = mIsDisplayOn ? Display.STATE_ON : Display.STATE_OFF; + if (mSurface == null) { + mInfo.state = Display.STATE_OFF; + } else { + mInfo.state = mDisplayState; + } mInfo.ownerUid = mOwnerUid; mInfo.ownerPackageName = mOwnerPackageName; |