From e4dad51deb2c013095d8949172559d9271f996d7 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Sun, 4 Jul 2021 22:16:38 +0200 Subject: [PATCH] Add custom android Activity Doesn't do anything yet, but we're going to need it for the android integration --- CMakeLists.txt | 1 + android/AndroidManifest.xml | 2 +- android/build.gradle | 96 +++++++++++++++++++++++++ android/src/org/kde/kasts/Activity.java | 27 +++++++ android/version.gradle.in | 6 ++ 5 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 android/build.gradle create mode 100644 android/src/org/kde/kasts/Activity.java create mode 100644 android/version.gradle.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 06186993..c29e63c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,6 +48,7 @@ if (ANDROID) find_package(SQLite3) find_package(ZLIB) find_package(Gradle) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle) else() find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets DBus) endif() diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 8618c067..6f2c9bce 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -16,7 +16,7 @@ diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 00000000..dd715eb7 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,96 @@ +/* + SPDX-FileCopyrightText: 2018-2020 Volker Krause + SPDX-FileCopyrightText: 2019 Nicolas Fella + SPDX-FileCopyrightText: 2020 Gabriel Souza Franco + SPDX-License-Identifier: BSD-3-Clause +*/ + +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.6.4' + } +} + +repositories { + google() + jcenter() +} + + +apply plugin: 'com.android.application' +apply from: '../version.gradle' +def timestamp = (int)(new Date().getTime()/1000) + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) +} + +android { + /******************************************************* + * The following variables: + * - androidBuildToolsVersion, + * - androidCompileSdkVersion + * - qt5AndroidDir - holds the path to qt android files + * needed to build any Qt application + * on Android. + * + * are defined in gradle.properties file. This file is + * updated by QtCreator and androiddeployqt tools. + * Changing them manually might break the compilation! + *******************************************************/ + + compileSdkVersion androidCompileSdkVersion.toInteger() + + buildToolsVersion androidBuildToolsVersion + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] + aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] + res.srcDirs = [qt5AndroidDir + '/res', 'res'] + resources.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + lintOptions { + abortOnError false + } + + defaultConfig { + minSdkVersion qtMinSdkVersion + targetSdkVersion qtTargetSdkVersion + manifestPlaceholders = [versionName: projectVersionFull, versionCode: timestamp] + } + + packagingOptions { + exclude 'lib/*/*RemoteObjects*' + exclude 'lib/*/*StateMachine*' + exclude 'lib/*/*_imageformats_qico_*' + exclude 'lib/*/*_imageformats_qicns_*' + exclude 'lib/*/*_imageformats_qtga_*' + exclude 'lib/*/*_imageformats_qtiff_*' + exclude 'lib/*/*_qmltooling_*' + } + + aaptOptions { + // different syntax than above + // see https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/tools/aapt2/util/Files.h#90 + ignoreAssetsPattern '!ECM:!aclocal:!doc:!gtk-doc:!iso-codes:!man:!mime:!pkgconfig:!qlogging-categories5:!iso_15924.mo:!iso_3166-2.mo:!iso_3166-3.mo:!iso_4217.mo:!iso_639-2.mo:!iso_639-3.mo:!iso_639-5.mo:!kcodecs5_qt.qm:!kde5_xml_mimetypes.qm' + } + + +} diff --git a/android/src/org/kde/kasts/Activity.java b/android/src/org/kde/kasts/Activity.java new file mode 100644 index 00000000..1cb2e0e5 --- /dev/null +++ b/android/src/org/kde/kasts/Activity.java @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: 2018 Volker Krause +// SPDX-License-Identifier: LGPL-2.0-or-later + + +package org.kde.kasts; + +import org.qtproject.qt5.android.bindings.QtActivity; + +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.provider.CalendarContract; +import android.os.Bundle; +import android.util.Log; + +import java.io.*; +import java.util.*; + +public class Activity extends QtActivity +{ + private static final String TAG = "org.kde.kasts"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } +} diff --git a/android/version.gradle.in b/android/version.gradle.in new file mode 100644 index 00000000..fcd087f5 --- /dev/null +++ b/android/version.gradle.in @@ -0,0 +1,6 @@ +// SPDX-FileCopyrightText: 2021 Volker Krause +// SPDX-License-Identifier: BSD-3-Clause + +ext { + projectVersionFull = "@PROJECT_VERSION@" +}