From d573b60e4c9dde1d4133b814e95ce20e8080bc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Resul=20=C3=96v=C3=BCr?= <92828257+ovurrsl@users.noreply.github.com> Date: Fri, 16 Oct 2026 16:50:14 +0300 Subject: [PATCH] fix: the launcher does not offer its own display as a second screen (#889) * fix: the launcher does not offer its own display as a second screen MainActivity asked for the second-screen candidates with the default display as the primary one. When the launcher is itself shown on another display (DeX, an external monitor), that display was listed as a second screen. Pass the Activity's own display id, as SessionActivity already does. * fix: read the Activity display only on API 30 and newer minSdk is 26 and Activity.getDisplay needs API 30. Use windowManager.defaultDisplay below that. --------- Co-authored-by: ovurrsl --- app/src/main/java/com/droiddeck/launcher/MainActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/droiddeck/launcher/MainActivity.kt b/app/src/main/java/com/droiddeck/launcher/MainActivity.kt index 99bdf9edc..3577b30cd 100644 --- a/app/src/main/java/com/droiddeck/launcher/MainActivity.kt +++ b/app/src/main/java/com/droiddeck/launcher/MainActivity.kt @@ -1050,7 +1050,9 @@ class MainActivity : ComponentActivity() { private fun refreshSecondScreenDisplays() { if (!::displayManager.isInitialized) return - secondScreenDisplays = SecondScreenDisplays.available(displayManager) + // The launcher can itself be shown on a non-default display (DeX, an external monitor); that one is not a "second screen". + val ownDisplayId = if (android.os.Build.VERSION.SDK_INT >= 30) display?.displayId ?: android.view.Display.DEFAULT_DISPLAY else @Suppress("DEPRECATION") windowManager.defaultDisplay.displayId + secondScreenDisplays = SecondScreenDisplays.available(displayManager, ownDisplayId) } private fun launchAndroidApp(app: HomeApp.LaunchableApp, displayId: Int?) {