aboutsummaryrefslogtreecommitdiffstats
path: root/examples/platforms/android/qtquickview_java
diff options
context:
space:
mode:
authorKonsta Alajärvi <konsta.alajarvi@qt.io>2025-02-05 16:13:15 +0200
committerKonsta Alajärvi <konsta.alajarvi@qt.io>2025-02-19 05:54:17 +0000
commit131cb7016bf08b530093ae1043d6c8f96637c6fa (patch)
tree9399278bb33d7e1a5184f282ebef8974cca10d89 /examples/platforms/android/qtquickview_java
parent77811ba4ba0f7a061964521ccf4917a9946c1999 (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')
-rw-r--r--examples/platforms/android/qtquickview_java/app/src/main/AndroidManifest.xml3
-rw-r--r--examples/platforms/android/qtquickview_java/app/src/main/java/com/example/qtquickview_java/MainActivity.java55
-rw-r--r--examples/platforms/android/qtquickview_java/app/src/main/res/layout-land/activity_main.xml135
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>