diff options
| author | Konsta Alajärvi <konsta.alajarvi@qt.io> | 2025-02-05 16:13:15 +0200 |
|---|---|---|
| committer | Konsta Alajärvi <konsta.alajarvi@qt.io> | 2025-02-19 05:54:17 +0000 |
| commit | 131cb7016bf08b530093ae1043d6c8f96637c6fa (patch) | |
| tree | 9399278bb33d7e1a5184f282ebef8974cca10d89 /examples/platforms/android/qtquickview_java | |
| parent | 77811ba4ba0f7a061964521ccf4917a9946c1999 (diff) | |
Qt Quick for Android: Remove manual orientation handling from examples
Remove any code related to manual target device orientation handling
from Qt Quick for Android examples. Provide alternative landscape
specific layout for examples.
Remove unused variables and imports.
Move unnecessary global variables to local.
Fix couple variable namings in qtquickview_kotlin MainActivity.kt.
Fixes: QTBUG-133325
Change-Id: I55ae0df59dd8b02b5f6cfadccc94095d4b7d4ac1
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'examples/platforms/android/qtquickview_java')
3 files changed, 138 insertions, 55 deletions
diff --git a/examples/platforms/android/qtquickview_java/app/src/main/AndroidManifest.xml b/examples/platforms/android/qtquickview_java/app/src/main/AndroidManifest.xml index f058a307fb..8c38d54b06 100644 --- a/examples/platforms/android/qtquickview_java/app/src/main/AndroidManifest.xml +++ b/examples/platforms/android/qtquickview_java/app/src/main/AndroidManifest.xml @@ -14,8 +14,7 @@ tools:targetApi="34"> <activity android:name=".MainActivity" - android:exported="true" - android:configChanges="orientation|screenLayout|screenSize"> + android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"/> diff --git a/examples/platforms/android/qtquickview_java/app/src/main/java/com/example/qtquickview_java/MainActivity.java b/examples/platforms/android/qtquickview_java/app/src/main/java/com/example/qtquickview_java/MainActivity.java index 9c7c1d5bca..633a21f830 100644 --- a/examples/platforms/android/qtquickview_java/app/src/main/java/com/example/qtquickview_java/MainActivity.java +++ b/examples/platforms/android/qtquickview_java/app/src/main/java/com/example/qtquickview_java/MainActivity.java @@ -2,18 +2,14 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause package com.example.qtquickview_java; -import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SwitchCompat; -import android.content.res.Configuration; import android.graphics.Color; import android.os.Bundle; -import android.util.DisplayMetrics; import android.util.Log; import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; -import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import org.qtproject.qt.android.QtQmlStatus; @@ -38,11 +34,6 @@ public class MainActivity extends AppCompatActivity implements QtQmlStatusChange put(QtQmlStatus.NULL, " NULL"); }}; private int m_qmlButtonSignalListenerId; - private LinearLayout m_mainLinear; - - private FrameLayout m_firstQmlFrameLayout; - private FrameLayout m_secondQmlFrameLayout; - //! [qmlContent] private final Main m_firstQmlContent = new Main(); private final Second m_secondQmlContent = new Second(); @@ -59,7 +50,6 @@ public class MainActivity extends AppCompatActivity implements QtQmlStatusChange super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - m_mainLinear = findViewById(R.id.mainLinear); m_qmlViewBackgroundText = findViewById(R.id.qmlViewBackgroundText); m_qmlStatus = findViewById(R.id.qmlStatusText); m_androidControlsLayout = findViewById(R.id.javaRelative); @@ -80,9 +70,9 @@ public class MainActivity extends AppCompatActivity implements QtQmlStatusChange //! [layoutParams] final ViewGroup.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - m_firstQmlFrameLayout = findViewById(R.id.firstQmlFrame); + FrameLayout m_firstQmlFrameLayout = findViewById(R.id.firstQmlFrame); m_firstQmlFrameLayout.addView(m_firstQuickView, params); - m_secondQmlFrameLayout = findViewById(R.id.secondQmlFrame); + FrameLayout m_secondQmlFrameLayout = findViewById(R.id.secondQmlFrame); m_secondQmlFrameLayout.addView(m_secondQuickView, params); //! [layoutParams] //! [loadContent] @@ -94,50 +84,9 @@ public class MainActivity extends AppCompatActivity implements QtQmlStatusChange m_changeColorButton.setOnClickListener(view -> onClickListener()); Button m_rotateQmlGridButton = findViewById(R.id.rotateQmlGridButton); m_rotateQmlGridButton.setOnClickListener(view -> rotateQmlGrid()); - - // Check target device orientation on launch - handleOrientationChanges(); } //! [onCreate] - @Override - public void onConfigurationChanged(@NonNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - handleOrientationChanges(); - } - - private void handleOrientationChanges() { - // When specific target device display configurations (listed in AndroidManifest.xml - // android:configChanges) change, get display metrics and make needed changes to UI - DisplayMetrics displayMetrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - ViewGroup.LayoutParams firstQmlFrameLayoutParams = m_firstQmlFrameLayout.getLayoutParams(); - ViewGroup.LayoutParams secondQmlFrameLayoutParams = - m_secondQmlFrameLayout.getLayoutParams(); - ViewGroup.LayoutParams linearLayoutParams = m_androidControlsLayout.getLayoutParams(); - - if (displayMetrics.heightPixels > displayMetrics.widthPixels) { - m_mainLinear.setOrientation(LinearLayout.VERTICAL); - firstQmlFrameLayoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; - firstQmlFrameLayoutParams.height = 0; - secondQmlFrameLayoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; - secondQmlFrameLayoutParams.height = 0; - linearLayoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; - linearLayoutParams.height = 0; - } else { - m_mainLinear.setOrientation(LinearLayout.HORIZONTAL); - firstQmlFrameLayoutParams.width = 0; - firstQmlFrameLayoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; - secondQmlFrameLayoutParams.width = 0; - secondQmlFrameLayoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; - linearLayoutParams.width = 0; - linearLayoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; - } - m_firstQmlFrameLayout.setLayoutParams(firstQmlFrameLayoutParams); - m_secondQmlFrameLayout.setLayoutParams(secondQmlFrameLayoutParams); - m_androidControlsLayout.setLayoutParams(linearLayoutParams); - } - //! [onClickListener] public void onClickListener() { // Set the QML view root object property "colorStringFormat" value to diff --git a/examples/platforms/android/qtquickview_java/app/src/main/res/layout-land/activity_main.xml b/examples/platforms/android/qtquickview_java/app/src/main/res/layout-land/activity_main.xml new file mode 100644 index 0000000000..3d31ebfd69 --- /dev/null +++ b/examples/platforms/android/qtquickview_java/app/src/main/res/layout-land/activity_main.xml @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/mainLinear" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".MainActivity" + android:orientation="horizontal" + android:baselineAligned="false"> + + <FrameLayout + android:id="@+id/firstQmlFrame" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1"> + </FrameLayout> + + <FrameLayout + android:id="@+id/secondQmlFrame" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1"> + </FrameLayout> + + <RelativeLayout + android:id="@+id/javaRelative" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center_vertical" + android:background="@color/lilac"> + + <TextView + android:id="@+id/header_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:text="@string/java" + android:textColor="@color/white" + android:textStyle="bold" + android:textSize="@dimen/title_text_size"/> + + <TextView + android:id="@+id/qmlStatusText" + android:textSize="@dimen/other_text_size" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/header_title" + android:layout_marginTop="25dp" + android:layout_centerHorizontal="true" + android:text="@string/qml_view_status" + android:textColor="@color/white"/> + + <LinearLayout + android:id="@+id/qmlColorLayout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_centerHorizontal="true" + android:layout_below="@id/qmlStatusText" + android:layout_marginTop="@dimen/layout_margins"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/white" + android:textSize="@dimen/other_text_size" + android:layout_gravity="center_vertical" + android:text="@string/qml_view_color_label"/> + + <RelativeLayout + android:id="@+id/qmlColorBox" + android:layout_width="@dimen/color_box_width" + android:layout_height="@dimen/color_box_height" + android:background="@color/cardview_shadow_start_color" + android:layout_gravity="center_vertical" + android:layout_marginStart="@dimen/layout_margins"> + + <TextView + android:id="@+id/qmlViewBackgroundText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="@dimen/other_text_size" + android:text="placeholder" + android:layout_centerInParent="true" + android:textColor="@color/white"/> + + </RelativeLayout> + </LinearLayout> + + <LinearLayout + android:id="@+id/switchAndTextLayout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/qmlColorLayout" + android:layout_marginTop="@dimen/layout_margins" + android:layout_centerHorizontal="true"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/connect_qml_button_signal_listener" + android:textSize="@dimen/other_text_size" + android:textColor="@color/white"/> + + <androidx.appcompat.widget.SwitchCompat + android:id="@+id/disconnectQmlListenerSwitch" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:checked="true"/> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:gravity="center_horizontal" + android:layout_below="@+id/switchAndTextLayout" + android:layout_marginTop="@dimen/layout_margins"> + <Button + android:id="@+id/changeQmlColorButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/change_qml_background" /> + <Button + android:id="@+id/rotateQmlGridButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/rotate_qml_grid"/> + </LinearLayout> + </RelativeLayout> +</LinearLayout> |
