Loading packages/SystemUI/src/com/android/systemui/ambient/touch/TouchMonitor.java +15 −3 Original line number Original line Diff line number Diff line Loading @@ -52,6 +52,8 @@ import com.android.systemui.util.display.DisplayHelper; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture; import kotlin.Unit; import kotlinx.coroutines.Job; import kotlinx.coroutines.Job; import java.util.Collection; import java.util.Collection; Loading Loading @@ -87,7 +89,7 @@ public class TouchMonitor { private final ConfigurationInteractor mConfigurationInteractor; private final ConfigurationInteractor mConfigurationInteractor; private final Lifecycle mLifecycle; private final Lifecycle mLifecycle; private Rect mExclusionRect = null; private Rect mExclusionRect = new Rect(); private ISystemGestureExclusionListener mGestureExclusionListener; private ISystemGestureExclusionListener mGestureExclusionListener; Loading Loading @@ -298,9 +300,18 @@ public class TouchMonitor { public void onSystemGestureExclusionChanged(int displayId, public void onSystemGestureExclusionChanged(int displayId, Region systemGestureExclusion, Region systemGestureExclusion, Region systemGestureExclusionUnrestricted) { Region systemGestureExclusionUnrestricted) { mExclusionRect = systemGestureExclusion.getBounds(); final Rect bounds = systemGestureExclusion.getBounds(); if (!mExclusionRect.equals(bounds)) { mExclusionRect = bounds; mLogger.i(msg -> "Exclusion rect updated to " + msg.getStr1(), msg -> { msg.setStr1(bounds.toString()); return Unit.INSTANCE; }); } } } }; }; mLogger.i("Registering system gesture exclusion listener"); mWindowManagerService.registerSystemGestureExclusionListener( mWindowManagerService.registerSystemGestureExclusionListener( mGestureExclusionListener, mDisplayId); mGestureExclusionListener, mDisplayId); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -320,11 +331,12 @@ public class TouchMonitor { * Destroys any active {@link InputSession}. * Destroys any active {@link InputSession}. */ */ private void stopMonitoring(boolean force) { private void stopMonitoring(boolean force) { mExclusionRect = null; mExclusionRect = new Rect(); if (bouncerAreaExclusion()) { if (bouncerAreaExclusion()) { mBackgroundExecutor.execute(() -> { mBackgroundExecutor.execute(() -> { try { try { if (mGestureExclusionListener != null) { if (mGestureExclusionListener != null) { mLogger.i("Unregistering system gesture exclusion listener"); mWindowManagerService.unregisterSystemGestureExclusionListener( mWindowManagerService.unregisterSystemGestureExclusionListener( mGestureExclusionListener, mDisplayId); mGestureExclusionListener, mDisplayId); mGestureExclusionListener = null; mGestureExclusionListener = null; Loading Loading
packages/SystemUI/src/com/android/systemui/ambient/touch/TouchMonitor.java +15 −3 Original line number Original line Diff line number Diff line Loading @@ -52,6 +52,8 @@ import com.android.systemui.util.display.DisplayHelper; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture; import kotlin.Unit; import kotlinx.coroutines.Job; import kotlinx.coroutines.Job; import java.util.Collection; import java.util.Collection; Loading Loading @@ -87,7 +89,7 @@ public class TouchMonitor { private final ConfigurationInteractor mConfigurationInteractor; private final ConfigurationInteractor mConfigurationInteractor; private final Lifecycle mLifecycle; private final Lifecycle mLifecycle; private Rect mExclusionRect = null; private Rect mExclusionRect = new Rect(); private ISystemGestureExclusionListener mGestureExclusionListener; private ISystemGestureExclusionListener mGestureExclusionListener; Loading Loading @@ -298,9 +300,18 @@ public class TouchMonitor { public void onSystemGestureExclusionChanged(int displayId, public void onSystemGestureExclusionChanged(int displayId, Region systemGestureExclusion, Region systemGestureExclusion, Region systemGestureExclusionUnrestricted) { Region systemGestureExclusionUnrestricted) { mExclusionRect = systemGestureExclusion.getBounds(); final Rect bounds = systemGestureExclusion.getBounds(); if (!mExclusionRect.equals(bounds)) { mExclusionRect = bounds; mLogger.i(msg -> "Exclusion rect updated to " + msg.getStr1(), msg -> { msg.setStr1(bounds.toString()); return Unit.INSTANCE; }); } } } }; }; mLogger.i("Registering system gesture exclusion listener"); mWindowManagerService.registerSystemGestureExclusionListener( mWindowManagerService.registerSystemGestureExclusionListener( mGestureExclusionListener, mDisplayId); mGestureExclusionListener, mDisplayId); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -320,11 +331,12 @@ public class TouchMonitor { * Destroys any active {@link InputSession}. * Destroys any active {@link InputSession}. */ */ private void stopMonitoring(boolean force) { private void stopMonitoring(boolean force) { mExclusionRect = null; mExclusionRect = new Rect(); if (bouncerAreaExclusion()) { if (bouncerAreaExclusion()) { mBackgroundExecutor.execute(() -> { mBackgroundExecutor.execute(() -> { try { try { if (mGestureExclusionListener != null) { if (mGestureExclusionListener != null) { mLogger.i("Unregistering system gesture exclusion listener"); mWindowManagerService.unregisterSystemGestureExclusionListener( mWindowManagerService.unregisterSystemGestureExclusionListener( mGestureExclusionListener, mDisplayId); mGestureExclusionListener, mDisplayId); mGestureExclusionListener = null; mGestureExclusionListener = null; Loading