From 8825220b2ed62003a3e60d6bb3e257ebed28060a Mon Sep 17 00:00:00 2001 From: Simon Chan <1330321+yume-chan@users.noreply.github.com> Date: Mon, 27 Nov 2023 17:11:08 +0800 Subject: [PATCH] Remove fold listener The display listener notifies whenever the display changes, including when the device is folded. --- .../android/view/IDisplayFoldListener.aidl | 26 -------------- .../java/com/genymobile/scrcpy/Device.java | 36 ------------------- .../com/genymobile/scrcpy/ScreenCapture.java | 9 +---- .../scrcpy/wrappers/WindowManager.java | 12 ------- 4 files changed, 1 insertion(+), 82 deletions(-) delete mode 100644 server/src/main/aidl/android/view/IDisplayFoldListener.aidl diff --git a/server/src/main/aidl/android/view/IDisplayFoldListener.aidl b/server/src/main/aidl/android/view/IDisplayFoldListener.aidl deleted file mode 100644 index 2c91149d..00000000 --- a/server/src/main/aidl/android/view/IDisplayFoldListener.aidl +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.view; - -/** - * {@hide} - */ -oneway interface IDisplayFoldListener -{ - /** Called when the foldedness of a display changes */ - void onDisplayFoldChanged(int displayId, boolean folded); -} diff --git a/server/src/main/java/com/genymobile/scrcpy/Device.java b/server/src/main/java/com/genymobile/scrcpy/Device.java index 47942165..7cb8bc61 100644 --- a/server/src/main/java/com/genymobile/scrcpy/Device.java +++ b/server/src/main/java/com/genymobile/scrcpy/Device.java @@ -15,7 +15,6 @@ import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; import android.os.SystemClock; -import android.view.IDisplayFoldListener; import android.view.InputDevice; import android.view.InputEvent; import android.view.KeyCharacterMap; @@ -39,10 +38,6 @@ public final class Device { void onDisplayChanged(); } - public interface FoldListener { - void onFoldChanged(int displayId, boolean folded); - } - public interface ClipboardListener { void onClipboardTextChanged(String text); } @@ -54,7 +49,6 @@ public final class Device { private Size deviceSize; private ScreenInfo screenInfo; private DisplayChangeListener displayChangeListener; - private FoldListener foldListener; private ClipboardListener clipboardListener; private final AtomicBoolean isSettingClipboard = new AtomicBoolean(); @@ -109,32 +103,6 @@ public final class Device { } }, displayListenerHandler); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - ServiceManager.getWindowManager().registerDisplayFoldListener(new IDisplayFoldListener.Stub() { - @Override - public void onDisplayFoldChanged(int displayId, boolean folded) { - if (Device.this.displayId != displayId) { - // Ignore events related to other display ids - return; - } - - synchronized (Device.this) { - DisplayInfo displayInfo = ServiceManager.getDisplayManager().getDisplayInfo(displayId); - if (displayInfo == null) { - Ln.e("Display " + displayId + " not found\n" + LogUtils.buildDisplayListMessage()); - return; - } - - screenInfo = ScreenInfo.computeScreenInfo(displayInfo.getRotation(), deviceSize, crop, maxSize, lockVideoOrientation); - // notify - if (foldListener != null) { - foldListener.onFoldChanged(displayId, folded); - } - } - } - }); - } - if (options.getControl() && options.getClipboardAutosync()) { // If control and autosync are enabled, synchronize Android clipboard to the computer automatically ClipboardManager clipboardManager = ServiceManager.getClipboardManager(); @@ -266,10 +234,6 @@ public final class Device { this.displayChangeListener = displayChangeListener; } - public synchronized void setFoldListener(FoldListener foldlistener) { - this.foldListener = foldlistener; - } - public synchronized void setClipboardListener(ClipboardListener clipboardListener) { this.clipboardListener = clipboardListener; } diff --git a/server/src/main/java/com/genymobile/scrcpy/ScreenCapture.java b/server/src/main/java/com/genymobile/scrcpy/ScreenCapture.java index f95d62d4..a9fdf8b6 100644 --- a/server/src/main/java/com/genymobile/scrcpy/ScreenCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/ScreenCapture.java @@ -7,7 +7,7 @@ import android.os.Build; import android.os.IBinder; import android.view.Surface; -public class ScreenCapture extends SurfaceCapture implements Device.DisplayChangeListener, Device.FoldListener { +public class ScreenCapture extends SurfaceCapture implements Device.DisplayChangeListener { private final Device device; private IBinder display; @@ -19,7 +19,6 @@ public class ScreenCapture extends SurfaceCapture implements Device.DisplayChang @Override public void init() { device.setDisplayChangeListener(this); - device.setFoldListener(this); } @Override @@ -42,7 +41,6 @@ public class ScreenCapture extends SurfaceCapture implements Device.DisplayChang @Override public void release() { device.setDisplayChangeListener(null); - device.setFoldListener(null); if (display != null) { SurfaceControl.destroyDisplay(display); } @@ -59,11 +57,6 @@ public class ScreenCapture extends SurfaceCapture implements Device.DisplayChang return true; } - @Override - public void onFoldChanged(int displayId, boolean folded) { - requestReset(); - } - @Override public void onDisplayChanged() { requestReset(); diff --git a/server/src/main/java/com/genymobile/scrcpy/wrappers/WindowManager.java b/server/src/main/java/com/genymobile/scrcpy/wrappers/WindowManager.java index e45b0345..55c5da14 100644 --- a/server/src/main/java/com/genymobile/scrcpy/wrappers/WindowManager.java +++ b/server/src/main/java/com/genymobile/scrcpy/wrappers/WindowManager.java @@ -2,9 +2,7 @@ package com.genymobile.scrcpy.wrappers; import com.genymobile.scrcpy.Ln; -import android.annotation.TargetApi; import android.os.IInterface; -import android.view.IDisplayFoldListener; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -93,14 +91,4 @@ public final class WindowManager { Ln.e("Could not invoke method", e); } } - - @TargetApi(29) - public void registerDisplayFoldListener(IDisplayFoldListener foldListener) { - try { - Class cls = manager.getClass(); - cls.getMethod("registerDisplayFoldListener", IDisplayFoldListener.class).invoke(manager, foldListener); - } catch (Exception e) { - Ln.e("Could not register display fold listener", e); - } - } }