From f50817c43c8d5b18d1b820da5d6e7f90be07fa24 Mon Sep 17 00:00:00 2001 From: NickVs2015 Date: Mon, 15 Dec 2025 16:56:36 +0300 Subject: [PATCH] feat: switch to qt 6.10.1 (#2057) * feat: switch to qt 6.10.1 * feat: switch to qt 6.10.1 remove touch --- .github/workflows/deploy.yml | 2 +- client/amnezia_application.cpp | 3 --- .../src/org/amnezia/vpn/AmneziaActivity.kt | 20 +++++++++++++++++-- client/cmake/android.cmake | 6 +++++- client/ui/qml/main2.qml | 9 +++++++-- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bfc49ac70..a64c67367 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -531,7 +531,7 @@ jobs: env: ANDROID_BUILD_PLATFORM: android-36 - QT_VERSION: 6.8.3 + QT_VERSION: 6.10.1 QT_MODULES: 'qtremoteobjects qt5compat qtimageformats qtshadertools' PROD_AGW_PUBLIC_KEY: ${{ secrets.PROD_AGW_PUBLIC_KEY }} PROD_S3_ENDPOINT: ${{ secrets.PROD_S3_ENDPOINT }} diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index 3db45d5ec..5b90947ca 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -94,9 +94,6 @@ namespace { void AmneziaApplication::init() { -#ifdef Q_OS_ANDROID - clearQtCaches(); -#endif m_engine = new QQmlApplicationEngine; const QUrl url(QStringLiteral("qrc:/ui/qml/main2.qml")); diff --git a/client/android/src/org/amnezia/vpn/AmneziaActivity.kt b/client/android/src/org/amnezia/vpn/AmneziaActivity.kt index 4b684215a..ca61ae798 100644 --- a/client/android/src/org/amnezia/vpn/AmneziaActivity.kt +++ b/client/android/src/org/amnezia/vpn/AmneziaActivity.kt @@ -269,9 +269,19 @@ class AmneziaActivity : QtActivity() { super.onStop() } + override fun onWindowFocusChanged(hasFocus: Boolean) { + super.onWindowFocusChanged(hasFocus) + Log.d(TAG, "Window focus changed: hasFocus=$hasFocus") + } + + override fun onPause() { + super.onPause() + Log.d(TAG, "Pause Amnezia activity") + } + override fun onResume() { super.onResume() - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + /* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { window.decorView.apply { invalidate() @@ -288,7 +298,8 @@ class AmneziaActivity : QtActivity() { invalidate() }, 250) } - } + } */ + Log.d(TAG, "Resume Amnezia activity") } private fun configureWindowForEdgeToEdge() { @@ -314,6 +325,11 @@ class AmneziaActivity : QtActivity() { addFlags(LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) statusBarColor = getColor(R.color.black) } + + WindowInsetsControllerCompat(window, window.decorView).apply { + isAppearanceLightStatusBars = false + isAppearanceLightNavigationBars = false + } } } diff --git a/client/cmake/android.cmake b/client/cmake/android.cmake index 1227e29ed..af9a405a6 100644 --- a/client/cmake/android.cmake +++ b/client/cmake/android.cmake @@ -20,7 +20,11 @@ set(QT_ANDROID_MULTI_ABI_FORWARD_VARS "QT_NO_GLOBAL_APK_TARGET_PART_OF_ALL;CMAKE # We need to include qtprivate api's # As QAndroidBinder is not yet implemented with a public api -set(LIBS ${LIBS} Qt6::CorePrivate -ljnigraphics) +# Check if Qt6::CorePrivate is available (may not be in all Qt versions/configurations) +if(TARGET Qt6::CorePrivate) + set(LIBS ${LIBS} Qt6::CorePrivate) +endif() +set(LIBS ${LIBS} -ljnigraphics) link_directories(${CMAKE_CURRENT_SOURCE_DIR}/platforms/android) diff --git a/client/ui/qml/main2.qml b/client/ui/qml/main2.qml index de2c24b9b..a137559ad 100644 --- a/client/ui/qml/main2.qml +++ b/client/ui/qml/main2.qml @@ -19,8 +19,13 @@ Window { Connections { target: Qt.application function onStateChanged() { - if (Qt.platform.os === "android" && Qt.application.state === Qt.ApplicationActive) { - refreshTimer.restart() + if (Qt.platform.os === "android") { + if (Qt.application.state === Qt.ApplicationActive) { + refreshTimer.restart() + } else if (Qt.application.state === Qt.ApplicationSuspended || + Qt.application.state === Qt.ApplicationInactive) { + console.log("QML: Application going to background, state:", Qt.application.state) + } } } }