diff options
author | Assam Boudjelthia <[email protected]> | 2021-05-11 12:49:40 +0300 |
---|---|---|
committer | Assam Boudjelthia <[email protected]> | 2021-06-29 14:08:24 +0300 |
commit | ae24e41ad4da78b029fd42ea317e4d2be73b015e (patch) | |
tree | 3f2d8c44dbf5a3eb666a7782bb5c1dfd62481c8e /examples/androidextras/musiclist | |
parent | ede82024b08842e9599b9bdbd00b7498601a921f (diff) |
The JNI utilities (i.e. QJniObject, QJniEnvironment) are already under
qtbase as public APIs.
Permission handling is now under QCoreApplication::{check,request}Permission
and QPermission namespace.
Some of the QtAndroid namespace functions are now under QNativeInterface's
QAndroidApplication, this includes:
* sdkVersion()
* hideSplashScreen()
* context() and isActivityContext()
* runOnAndroidMainThread()
The remaining APIs are now moved as private APIs under qtbase
ee05af296f65e240f64db6470cdddafbddbf2fa3. That is until we add
new cross-platform APIs to replace their functionalities like
Intents handling, starting activites and working with Services.
Task-number: QTBUG-83251
Task-number: QTBUG-84382
Pick-to: 6.2
Change-Id: Id077f8cbbe223a987916f737fad6088fb58e470d
Reviewed-by: Ville Voutilainen <[email protected]>
Diffstat (limited to 'examples/androidextras/musiclist')
9 files changed, 0 insertions, 731 deletions
diff --git a/examples/androidextras/musiclist/android/AndroidManifest.xml b/examples/androidextras/musiclist/android/AndroidManifest.xml deleted file mode 100644 index eea974e..0000000 --- a/examples/androidextras/musiclist/android/AndroidManifest.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.musiclist" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="minimal"/> - <!-- extract android style --> - </activity> - </application> - -</manifest> diff --git a/examples/androidextras/musiclist/android/src/org/qtproject/example/musiclist/MusicList.java b/examples/androidextras/musiclist/android/src/org/qtproject/example/musiclist/MusicList.java deleted file mode 100644 index d4dc840..0000000 --- a/examples/androidextras/musiclist/android/src/org/qtproject/example/musiclist/MusicList.java +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.musiclist; - -import android.content.ContentResolver; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.provider.MediaStore; -import java.util.ArrayList; - -public class MusicList { - - static ArrayList<MusicTrack> fetchMusicList(Context context) { - ArrayList<MusicTrack> musicList = new ArrayList<MusicTrack>(); - Cursor songCursor; - - try { - ContentResolver contentResolver = context.getContentResolver(); - Uri songUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; - songCursor = contentResolver.query(songUri, null, null, null, null); - } catch (SecurityException e) { - e.printStackTrace(); - return musicList; - } - - if (songCursor != null && songCursor.moveToFirst()) - { - int title = songCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); - int artist = songCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST); - int duration = duration = songCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION); - - do { - String currentTitle = songCursor.getString(title); - String currentArtist = songCursor.getString(artist); - long currentDuration = songCursor.getLong(duration); - musicList.add(new MusicTrack(currentTitle, currentArtist, currentDuration)); - } while (songCursor.moveToNext()); - } - - if (songCursor != null) - songCursor.close(); - - return musicList; - } -} - -class MusicTrack { - - private String title; - private String artist; - private long duration; - - MusicTrack (String title, String artist, long duration) { - this.title = title; - this.artist = artist; - this.duration = duration; - } - - public String getTitle() { return title; } - - public String getArtist() { return artist; } - - public long getDuration() { return duration; } -} diff --git a/examples/androidextras/musiclist/doc/src/qtandroidextras-example-musiclist.qdoc b/examples/androidextras/musiclist/doc/src/qtandroidextras-example-musiclist.qdoc deleted file mode 100644 index 39efb6a..0000000 --- a/examples/androidextras/musiclist/doc/src/qtandroidextras-example-musiclist.qdoc +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\title Qt JNI Music List - \ingroup examples-qtandroidextras - \example musiclist - \brief Demonstrates how to exchange data from complex Java objects. - - \image musiclist.png - - This example demonstrates how to move around data from a Java ArrayList of - objects over to Qt. The example uses Android APIs to retrieve a list of music - tracks, and displays some information about them with QML. - - When the application starts, it displays a list of music tracks, showing the - track name, artist, and duration. - - \include examples-run.qdocinc - - \section1 Create the Music Classes - - Let's create a Java class, \c MusicTrack, that defines some of the basic - information about a track. In the Java side, create the following: - - \quotefromfile musiclist/android/src/org/qtproject/example/musiclist/MusicList.java - \skipto class MusicTrack - \printuntil /^\}/ - - Create another class with the same variables or information on the C++ side. - The definition for \c MusicTrack class is the following: - - \quotefromfile musiclist/musiclist.h - \skipto class MusicTrack - \printuntil }; - - \note The \c MusicTrack class must be a \l{QObject}-derived class to be used - with as a QML context property. For more information, see - \l{Overview - QML and C++ Integration}{QML and C++ Integration}. - - \section1 Fetch the Music List - - To retrieve the music list, the Android APIs are used. Add the following method - to find music tracks that are available on the system. This method returns - an ArrayList of \c MusicTrack. - - \quotefromfile musiclist/android/src/org/qtproject/example/musiclist/MusicList.java - \skipto package - \printuntil /^\ {4}\}/ - \printline } - - Using the JNI helpers provided with Qt, call the previous method to - first get an \l{QAndroidJniObject} containing an ArrayList of objects. In the - C++ code, you need to go through the Java ArrayList and create a parallel list - on C++. Add the following lines to do that: - - \quotefromfile musiclist/musiclist.cpp - \skipto QAndroidJniObject - \printuntil /^\ {4}\}/ - - Then, add a function to return the resulted \l{QList}: - - \quotefromfile musiclist/musiclist.cpp - \skipto MusicList::assembledMusicList - \printuntil } - - To display the music list, create a \l{ListView} that uses the \l{QList} - as a property. Register the property as follows: - - \quotefromfile musiclist/main.cpp - \skipto MusicList - \printuntil assembledMusicList - - In the QML code, define the model of the \l{ListView} as follows: - - \quotefromfile musiclist/main.qml - \skipto model - \printline model - - \sa {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/musiclist/main.cpp b/examples/androidextras/musiclist/main.cpp deleted file mode 100644 index 0c76cc2..0000000 --- a/examples/androidextras/musiclist/main.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "musiclist.h" - -#include <QtAndroid> - -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -bool requestStoragePermission() { - using namespace QtAndroid; - - QString permission = QStringLiteral("android.permission.WRITE_EXTERNAL_STORAGE"); - const QHash<QString, PermissionResult> results = requestPermissionsSync(QStringList({permission})); - if (!results.contains(permission) || results[permission] == PermissionResult::Denied) { - qWarning() << "Couldn't get permission: " << permission; - return false; - } - - return true; -} - -int main(int argc, char *argv[]) -{ - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - const QUrl url(http://code.qt.io/QStringLiteral(%22qrc:/main.qml")); - - if (!requestStoragePermission()) - qDebug() << "Storage permissions denied. This example might not work as intended"; - - MusicList *musicList = new MusicList(&app); - engine.rootContext()->setContextProperty(QLatin1String("musiclist"), - QVariant::fromValue(musicList->assembledMusicList())); - - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - &app, [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, Qt::QueuedConnection); - engine.load(url); - - return app.exec(); -} diff --git a/examples/androidextras/musiclist/main.qml b/examples/androidextras/musiclist/main.qml deleted file mode 100644 index 6a04bef..0000000 --- a/examples/androidextras/musiclist/main.qml +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -import QtQuick 2.14 -import QtQuick.Window 2.14 -import QtQuick.Controls 2.14 - -Window { - id: window - visible: true - width: 640 - height: 480 - title: qsTr("Qt Android Music List") - - Text { - id: resultText - height: 40 - text: "Music library list:" - anchors.right: parent.right - anchors.rightMargin: 10 - anchors.left: parent.left - anchors.leftMargin: 10 - anchors.top: parent.top - anchors.topMargin: 10 - font.pointSize: 20 - verticalAlignment: Text.AlignTop - } - - ToolSeparator { - id: toolSeparator - width: parent.width - anchors.bottom: listView.top - anchors.bottomMargin: 10 - anchors.top: resultText.bottom - anchors.topMargin: 6 - anchors.horizontalCenter: parent.horizontalCenter - orientation: Qt.Horizontal - } - - ListView { - id: listView - width: parent.width - clip: true - flickableDirection: Flickable.HorizontalAndVerticalFlick - anchors.bottomMargin: 10 - anchors.right: parent.right - anchors.rightMargin: 10 - anchors.left: parent.left - anchors.leftMargin: 10 - anchors.top: resultText.bottom - anchors.topMargin: 30 - anchors.bottom: parent.bottom - - model: musiclist - delegate: Rectangle { - height: 25 - width: ListView.view.width - color: index % 2 == 0 ? "#EDEDED" : "#FFFFFF" - - function toTimeFormat(sec_num) { - sec_num = Math.floor(sec_num / 1000); - var hours = Math.floor(sec_num / 3600); - var minutes = Math.floor((sec_num - (hours * 3600)) / 60); - var seconds = sec_num - (hours * 3600) - (minutes * 60); - - if (hours < 10) { hours = "0" + hours; } - if (minutes < 10) { minutes = "0" + minutes; } - if (seconds < 10) { seconds = "0" + seconds; } - - return hours+':'+minutes+':'+seconds; - } - - Text { text: model.modelData.title + " | " + model.modelData.artist + " | " + toTimeFormat(model.modelData.duration) } - } - } -} diff --git a/examples/androidextras/musiclist/musiclist.cpp b/examples/androidextras/musiclist/musiclist.cpp deleted file mode 100644 index 97d5cdb..0000000 --- a/examples/androidextras/musiclist/musiclist.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "musiclist.h" - -#include <QAndroidIntent> -#include <QAndroidJniEnvironment> - -MusicList::MusicList(QObject *parent) : QObject(parent) -{ - QAndroidJniObject musicList = QAndroidJniObject::callStaticObjectMethod( - "org/qtproject/example/musiclist/MusicList", - "fetchMusicList", - "(Landroid/content/Context;)Ljava/util/ArrayList;", - QtAndroid::androidContext().object()); - - for (int i = 0; i < musicList.callMethod<jint>("size"); ++i) { - QAndroidJniObject track = musicList.callObjectMethod("get", "(I)Ljava/lang/Object;", i); - const QString title = track.callObjectMethod("getTitle", "()Ljava/lang/String;").toString(); - const QString artist = track.callObjectMethod("getArtist", "()Ljava/lang/String;").toString(); - const long duration = track.callMethod<jlong>("getDuration"); - m_assembledMusicList.append(new MusicTrack(title, artist, duration, this)); - } -} - -QList<MusicTrack *> MusicList::assembledMusicList() const -{ - return m_assembledMusicList; -} diff --git a/examples/androidextras/musiclist/musiclist.h b/examples/androidextras/musiclist/musiclist.h deleted file mode 100644 index 14d487f..0000000 --- a/examples/androidextras/musiclist/musiclist.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef MUSICLIST_H -#define MUSICLIST_H - -#include <QtAndroid> - -class MusicTrack : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString title READ title CONSTANT) - Q_PROPERTY(QString artist READ artist CONSTANT) - Q_PROPERTY(long duration READ duration CONSTANT) - -public: - MusicTrack(const QString title, const QString artist, const long duration, QObject *parent = nullptr) - : QObject(parent), m_title(title), m_artist(artist), m_duration(duration) {} - - QString title() const { return m_title; } - QString artist() const { return m_artist; } - long duration() const { return m_duration; } - -private: - QString m_title; - QString m_artist; - long m_duration; -}; - -class MusicList : public QObject -{ - Q_OBJECT - -public: - MusicList(QObject *parent = nullptr); - QList<MusicTrack *> assembledMusicList() const; - -private: - QList<MusicTrack *> m_assembledMusicList; -}; - -#endif diff --git a/examples/androidextras/musiclist/musiclist.pro b/examples/androidextras/musiclist/musiclist.pro deleted file mode 100644 index 0d20de8..0000000 --- a/examples/androidextras/musiclist/musiclist.pro +++ /dev/null @@ -1,23 +0,0 @@ -QT += quick androidextras - -CONFIG += c++11 - -DEFINES += QT_DEPRECATED_WARNINGS - -HEADERS += \ - musiclist.h - -SOURCES += \ - main.cpp \ - musiclist.cpp - -RESOURCES += qml.qrc - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/musiclist -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/AndroidManifest.xml \ - android/src/org/qtproject/example/musiclist/MusicList.java diff --git a/examples/androidextras/musiclist/qml.qrc b/examples/androidextras/musiclist/qml.qrc deleted file mode 100644 index 5f6483a..0000000 --- a/examples/androidextras/musiclist/qml.qrc +++ /dev/null @@ -1,5 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>main.qml</file> - </qresource> -</RCC> |