Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Maui
Communicator
Commits
cd001a61
Commit
cd001a61
authored
Jan 18, 2021
by
camilo higuita
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make it work on android again
parent
c05e7931
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1353 additions
and
296 deletions
+1353
-296
CMakeLists.txt
CMakeLists.txt
+43
-71
android_files/AndroidManifest.xml
android_files/AndroidManifest.xml
+75
-151
android_files/build.gradle
android_files/build.gradle
+25
-5
android_files/gradle.properties
android_files/gradle.properties
+11
-0
android_files/gradlew
android_files/gradlew
+172
-0
android_files/gradlew.bat
android_files/gradlew.bat
+84
-0
android_files/res/values/libs.xml
android_files/res/values/libs.xml
+6
-9
src/CMakeLists.txt
src/CMakeLists.txt
+87
-0
src/assets/amarok_artist.svg
src/assets/amarok_artist.svg
+104
-0
src/assets/communicator.svg
src/assets/communicator.svg
+249
-0
src/assets/communicator48.png
src/assets/communicator48.png
+0
-0
src/assets/communicator64.png
src/assets/communicator64.png
+0
-0
src/assets/communicator96.png
src/assets/communicator96.png
+0
-0
src/assets/communicator_assets.qrc
src/assets/communicator_assets.qrc
+13
-0
src/assets/list-add-user.svg
src/assets/list-add-user.svg
+115
-0
src/assets/portrait.jpg
src/assets/portrait.jpg
+0
-0
src/assets/star.svg
src/assets/star.svg
+108
-0
src/assets/view-contacts.svg
src/assets/view-contacts.svg
+110
-0
src/interfaces/androidinterface.cpp
src/interfaces/androidinterface.cpp
+136
-25
src/interfaces/androidinterface.h
src/interfaces/androidinterface.h
+8
-3
src/interfaces/contactimage.cpp
src/interfaces/contactimage.cpp
+2
-2
src/main.cpp
src/main.cpp
+4
-29
src/main.qml
src/main.qml
+1
-1
No files found.
CMakeLists.txt
View file @
cd001a61
cmake_minimum_required
(
VERSION 3.1
)
set
(
COMMUNICATOR_VERSION 1.2.0
)
project
(
communicator LANGUAGES CXX VERSION
${
COMMUNICATOR_VERSION
}
)
# Copyright 2018-2020 Camilo Higuita <milo.h@aol.com>
# Copyright 2018-2020 Nitrux Latinoamericana S.C.
#
# SPDX-License-Identifier: GPL-3.0-or-latercmake_minimum_required(VERSION 3.14)
cmake_minimum_required
(
VERSION 3.14
)
set
(
COMMUNICATOR_VERSION 1.2.1
)
set
(
CMAKE_CXX_STANDARD 17
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
set
(
CMAKE_INCLUDE_CURRENT_DIR ON
)
set
(
CMAKE_AUTOUIC ON
)
set
(
CMAKE_AUTOMOC ON
)
set
(
CMAKE_AUTORCC ON
)
set
(
CMAKE_CXX_STANDARD 17
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
find_package
(
ECM 1.7.0 REQUIRED NO_MODULE
)
set
(
CMAKE_MODULE_PATH
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake"
${
ECM_MODULE_PATH
}
)
project
(
communicator VERSION
${
COMMUNICATOR_VERSION
}
)
find_package
(
MauiKit REQUIRED
)
find_package
(
Qt5 REQUIRED NO_MODULE COMPONENTS Qml Quick Sql Svg QuickControls2 Widgets Concurrent
)
include
(
KDEInstallDirs
)
include
(
KDECompilerSettings NO_POLICY_SCOPE
)
include
(
KDECMakeSettings
)
include
(
KDEClangFormat
)
include
(
ECMInstallIcons
)
include
(
ECMAddAppIcon
)
include
(
ECMSetupVersion
)
include
(
FeatureSummary
)
set
(
REQUIRED_QT_VERSION 5.14.0
)
set
(
REQUIRED_KF5_VERSION 5.60
)
include_directories
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/src/interfaces
${
CMAKE_CURRENT_BINARY_DIR
}
/src/interfaces
find_package
(
ECM
${
REQUIRED_KF5_VERSION
}
REQUIRED NO_MODULE
)
${
CMAKE_CURRENT_SOURCE_DIR
}
/src/models
${
CMAKE_CURRENT_BINARY_DIR
}
/src/models
set
(
CMAKE_MODULE_PATH
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake"
${
ECM_MODULE_PATH
}
)
${
CMAKE_CURRENT_BINARY_DIR
}
/src/models/contacts
${
CMAKE_CURRENT_BINARY_DIR
}
/src/models/contacts
)
find_package
(
MauiKit REQUIRED
)
set
(
communicator_SRCS
src/main.cpp
src/models/contacts/contactsmodel.cpp
src/models/contacts/calllogs.cpp
src/interfaces/linuxinterface.cpp
src/interfaces/contactimage.cpp
)
find_package
(
Qt5
${
REQUIRED_QT_VERSION
}
REQUIRED NO_MODULE COMPONENTS Qml Quick Sql Svg QuickControls2 Positioning Concurrent Xml
)
find_package
(
KF5
${
REQUIRED_KF5_VERSION
}
REQUIRED COMPONENTS I18n CoreAddons
)
set
(
communicator_HDRS
src/models/contacts/contactsmodel.h
s
rc/models/contacts/calllogs.h
s
rc/interfaces/abstractinterface.h
src/interfaces/linuxinterface.h
src/interfaces/contactimage.h
)
if
(
ANDROID
)
find_package
(
Qt5
${
REQUIRED_QT_VERSION
}
REQUIRED NO_MODULE COMPONENTS AndroidExtras QuickControls2
)
s
et
(
ANDROID_PACKAGE_SOURCE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/android_files
)
s
et
(
ANDROID_ABIS
"armeabi-v7a"
)
elseif
(
UNIX
)
find_package
(
KF5
${
REQUIRED_KF5_VERSION
}
REQUIRED COMPONENTS Config KIO Contacts People
)
endif
(
)
set
(
communicator_ASSETS
src/qml.qrc
assets/communicator_assets.qrc
)
if
(
UNIX AND NOT APPLE AND NOT ANDROID
)
include
(
KDEInstallDirs
)
include
(
KDECMakeSettings
)
include
(
ECMInstallIcons
)
include
(
ECMAddAppIcon
)
endif
()
add_executable
(
${
PROJECT_NAME
}
${
communicator_SRCS
}
${
communicator_HDRS
}
${
communicator_ASSETS
}
)
include
(
KDECompilerSettings NO_POLICY_SCOPE
)
include
(
KDEClangFormat
)
include
(
ECMSetupVersion
)
include
(
FeatureSummary
)
ecm_setup_version
(
${
COMMUNICATOR_VERSION
}
VARIABLE_PREFIX COMMUNICATOR
VERSION_HEADER
"
${
CMAKE_CURRENT_BINARY_DIR
}
/communicator_version.h"
)
if
(
ANDROID
)
find_package
(
Qt5 REQUIRED COMPONENTS AndroidExtras
)
target_link_libraries
(
${
PROJECT_NAME
}
Qt5::AndroidExtras
)
# kde_source_files_enable_exceptions(union src/pix.cpp)
elseif
(
${
CMAKE_SYSTEM_PROCESSOR
}
MATCHES
"arm"
)
add_subdirectory
(
src/communicator/linux
)
else
()
find_package
(
KF5
${
KF5_VERSION
}
REQUIRED COMPONENTS I18n Notifications Config KIO Attica Contacts People SyntaxHighlighting
)
target_link_libraries
(
${
PROJECT_NAME
}
KF5::ConfigCore KF5::Notifications KF5::KIOCore KF5::I18n KF5::Attica KF5::Contacts KF5::People
)
endif
()
if
(
TARGET create-apk-communicator
)
set_target_properties
(
create-apk-communicator PROPERTIES ANDROID_APK_DIR
"
${
MAUIKIT_ANDROID_DIR
}
"
)
endif
()
add_subdirectory
(
src
)
target_link_libraries
(
${
PROJECT_NAME
}
MauiKit Qt5::Sql Qt5::Qml Qt5::Widgets Qt5::Svg Qt5::Concurrent Qt5::Quick
)
if
(
UNIX AND NOT APPLE AND NOT ANDROID
)
install
(
TARGETS
${
PROJECT_NAME
}
${
KDE_INSTALL_TARGETS_DEFAULT_ARGS
}
)
install
(
FILES org.maui.communicator.desktop DESTINATION
${
XDG_APPS_INSTALL_DIR
}
)
#TODO: port to ecm_install_icons()
install
(
FILES assets/communicator.svg DESTINATION
${
KDE_INSTALL_ICONDIR
}
/hicolor/scalable/apps
)
install
(
FILES org.maui.communicator.json DESTINATION /usr/share/maui-accounts/manifests
)
#install(FILES org.kde.pix.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}
)
endif
(
)
feature_summary
(
WHAT ALL
FATAL_ON_MISSING_REQUIRED_PACKAGES
)
feature_summary
(
WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES
)
file
(
GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h
)
kde_clang_format
(
${
ALL_CLANG_FORMAT_SOURCE_FILES
}
)
\ No newline at end of file
kde_clang_format
(
${
ALL_CLANG_FORMAT_SOURCE_FILES
}
)
android_files/AndroidManifest.xml
View file @
cd001a61
<?xml version="1.0"?>
<manifest
package=
"org.maui.contacts"
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:versionName=
"1.0"
android:versionCode=
"1"
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. -->
<!-- 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. -->
<supports-screens
android:largeScreens=
"true"
android:normalScreens=
"true"
android:anyDensity=
"true"
android:smallScreens=
"true"
/>
<application
android:hardwareAccelerated=
"true"
android:name=
"org.qtproject.qt5.android.bindings.QtApplication"
android:label=
"Contacts"
android:icon=
"@drawable/icon"
>
<activity
android:configChanges=
"orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
android:name=
"org.qtproject.qt5.android.bindings.QtActivity"
android:label=
"Contacts"
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=
"contacts"
/>
<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%% --"
/>
<meta-data
android:name=
"android.app.bundled_in_lib_resource_id"
android:resource=
"@array/bundled_in_lib"
/>
<meta-data
android:name=
"android.app.bundled_in_assets_resource_id"
android:resource=
"@array/bundled_in_assets"
/>
<!-- 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"
android:value=
"-- %%INSERT_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"
/>
<!-- Messages maps -->
<!-- Splash screen -->
<!-- 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>
<!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
<service
android:process=
":qt"
android:name=
".MyService"
>
<!-- android:process=":qt" is needed to force the service to run on a separate process than the Activity -->
<!-- Application arguments -->
<meta-data
android:name=
"android.app.arguments"
android:value=
"-service"
/>
<!-- Application arguments -->
<!-- If you are using the same application (.so file) for activity and also for service, then you
need to use *android.app.arguments* to pass some arguments to your service in order to know which
one is which.
-->
<!-- Application to launch -->
<meta-data
android:name=
"android.app.lib_name"
android:value=
"vvave"
/>
<!-- Application to launch -->
<!-- Ministro -->
<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"
/>
<!-- Ministro -->
<!-- Deploy Qt libs as part of package -->
<meta-data
android:name=
"android.app.bundle_local_qt_libs"
android:value=
"-- %%BUNDLE_LOCAL_QT_LIBS%% --"
/>
<meta-data
android:name=
"android.app.bundled_in_lib_resource_id"
android:resource=
"@array/bundled_in_lib"
/>
<meta-data
android:name=
"android.app.bundled_in_assets_resource_id"
android:resource=
"@array/bundled_in_assets"
/>
<!-- Deploy Qt libs as part of package -->
<!-- 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"
android:value=
"-- %%INSERT_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%% --"
/>
<!-- Run with local libs -->
<!-- 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"
/>
<!-- Messages maps -->
<!-- Background running -->
<meta-data
android:name=
"android.app.background_running"
android:value=
"true"
/>
<!-- Background running -->
</service>
<provider
android:name=
"android.support.v4.content.FileProvider"
android:authorities=
"org.maui.contacts.fileprovider"
android:grantUriPermissions=
"true"
android:exported=
"false"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/filepaths"
/>
</provider>
</application>
<!-- 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. -->
<!-- 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. -->
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<manifest
package=
"org.maui.communicator"
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:versionName=
"1.2.1"
android:versionCode=
"1"
android:installLocation=
"auto"
>
<!-- 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. -->
<!-- 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.qt5.android.bindings.QtApplication"
android:label=
"Communicator"
android:extractNativeLibs=
"true"
android:icon=
"@drawable/icon"
>
<activity
android:configChanges=
"orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
android:name=
"org.qtproject.qt5.android.bindings.QtActivity"
android:label=
"Communicator"
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=
"communicator"
/>
<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=
"none"
/>
<!-- extract android style -->
</activity>
<!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
<provider
android:name=
"android.support.v4.content.FileProvider"
android:authorities=
"org.maui.communicator.fileprovider"
android:grantUriPermissions=
"true"
android:exported=
"false"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/filepaths"
/>
</provider>
</application>
<uses-permission
android:name=
"android.permission.READ_CONTACTS"
/>
<uses-permission
android:name=
"android.permission.CALL_PHONE"
/>
...
...
@@ -163,5 +88,4 @@
<uses-permission
android:name=
"android.permission.READ_CALL_LOG"
/>
</manifest>
android_files/build.gradle
View file @
cd001a61
...
...
@@ -5,7 +5,7 @@ buildscript {
}
dependencies
{
classpath
'com.android.tools.build:gradle:3.
2
.0'
classpath
'com.android.tools.build:gradle:3.
6
.0'
}
}
...
...
@@ -17,8 +17,8 @@ repositories {
apply
plugin:
'com.android.application'
dependencies
{
co
mp
i
le
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
,
'*.aar'
])
compile
'com.android.support:support-v4:25.3.1'
i
mple
mentation
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
,
'*.aar'
])
compile
'com.android.support:support-v4:25.3.1'
}
android
{
...
...
@@ -37,7 +37,7 @@ android {
compileSdkVersion
androidCompileSdkVersion
.
toInteger
()
buildToolsVersion
androidBuildToolsVersion
buildToolsVersion
'28.0.3'
sourceSets
{
main
{
...
...
@@ -45,14 +45,34 @@ android {
java
.
srcDirs
=
[
qt5AndroidDir
+
'/src'
,
'src'
,
'java'
]
aidl
.
srcDirs
=
[
qt5AndroidDir
+
'/src'
,
'src'
,
'aidl'
]
res
.
srcDirs
=
[
qt5AndroidDir
+
'/res'
,
'res'
]
resources
.
srcDirs
=
[
'
src
'
]
resources
.
srcDirs
=
[
'
resources
'
]
renderscript
.
srcDirs
=
[
'src'
]
assets
.
srcDirs
=
[
'assets'
]
jniLibs
.
srcDirs
=
[
'libs'
]
}
}
tasks
.
withType
(
JavaCompile
)
{
options
.
incremental
=
true
}
compileOptions
{
sourceCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
}
lintOptions
{
abortOnError
false
}
// Do not compress Qt binary resources file
aaptOptions
{
noCompress
'rcc'
}
defaultConfig
{
resConfig
"en"
minSdkVersion
=
qtMinSdkVersion
targetSdkVersion
=
qtTargetSdkVersion
}
}
android_files/gradle.properties
0 → 100644
View file @
cd001a61
# Project-wide Gradle settings.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs
=
-Xmx2048m
# Gradle caching allows reusing the build artifacts from a previous
# build with the same inputs. However, over time, the cache size will
# grow. Uncomment the following line to enable it.
#org.gradle.caching=true
android_files/gradlew
0 → 100755
View file @
cd001a61
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG
=
"
$0
"
# Need this for relative symlinks.
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
`
dirname
"
$PRG
"
`
"/
$link
"
fi
done
SAVED
=
"
`
pwd
`
"
cd
"
`
dirname
\"
$PRG
\"
`
/"
>
/dev/null
APP_HOME
=
"
`
pwd
-P
`
"
cd
"
$SAVED
"
>
/dev/null
APP_NAME
=
"Gradle"
APP_BASE_NAME
=
`
basename
"
$0
"
`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS
=
""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD
=
"maximum"
warn
()
{
echo
"
$*
"
}
die
()
{
echo
echo
"
$*
"
echo
exit
1
}
# OS specific support (must be 'true' or 'false').
cygwin
=
false
msys
=
false
darwin
=
false
nonstop
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
Darwin
*
)
darwin
=
true
;;
MINGW
*
)
msys
=
true
;;
NONSTOP
*
)
nonstop
=
true
;;
esac
CLASSPATH
=
$APP_HOME
/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
die
"ERROR: JAVA_HOME is set to an invalid directory:
$JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD
=
"java"
which java
>
/dev/null 2>&1
||
die
"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if
[
"
$cygwin
"
=
"false"
-a
"
$darwin
"
=
"false"
-a
"
$nonstop
"
=
"false"
]
;
then
MAX_FD_LIMIT
=
`
ulimit
-H
-n
`
if
[
$?
-eq
0
]
;
then
if
[
"
$MAX_FD
"
=
"maximum"
-o
"
$MAX_FD
"
=
"max"
]
;
then
MAX_FD
=
"
$MAX_FD_LIMIT
"
fi
ulimit
-n
$MAX_FD
if
[
$?
-ne
0
]
;
then
warn
"Could not set maximum file descriptor limit:
$MAX_FD
"
fi
else
warn
"Could not query maximum file descriptor limit:
$MAX_FD_LIMIT
"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if
$darwin
;
then
GRADLE_OPTS
=
"
$GRADLE_OPTS
\"
-Xdock:name=
$APP_NAME
\"
\"
-Xdock:icon=
$APP_HOME
/media/gradle.icns
\"
"
fi
# For Cygwin, switch paths to Windows format before running java
if
$cygwin
;
then
APP_HOME
=
`
cygpath
--path
--mixed
"
$APP_HOME
"
`
CLASSPATH
=
`
cygpath
--path
--mixed
"
$CLASSPATH
"
`
JAVACMD
=
`
cygpath
--unix
"
$JAVACMD
"
`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW
=
`
find
-L
/
-maxdepth
1
-mindepth
1
-type
d 2>/dev/null
`
SEP
=
""
for
dir
in
$ROOTDIRSRAW
;
do
ROOTDIRS
=
"
$ROOTDIRS$SEP$dir
"
SEP
=
"|"
done
OURCYGPATTERN
=
"(^(
$ROOTDIRS
))"
# Add a user-defined pattern to the cygpath arguments
if
[
"
$GRADLE_CYGPATTERN
"
!=
""
]
;
then
OURCYGPATTERN
=
"
$OURCYGPATTERN
|(
$GRADLE_CYGPATTERN
)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i
=
0
for
arg
in
"
$@
"
;
do
CHECK
=
`
echo
"
$arg
"
|egrep
-c
"
$OURCYGPATTERN
"
-
`
CHECK2
=
`
echo
"
$arg
"
|egrep
-c
"^-"
`
### Determine if an option
if
[
$CHECK
-ne
0
]
&&
[
$CHECK2
-eq
0
]
;
then
### Added a condition
eval
`
echo
args
$i
`
=
`
cygpath
--path
--ignore
--mixed
"
$arg
"
`
else
eval
`
echo
args
$i
`
=
"
\"
$arg
\"
"
fi
i
=
$((
i+1
))
done
case
$i
in
(
0
)
set
--
;;
(
1
)
set
--
"
$args0
"
;;
(
2
)
set
--
"
$args0
"
"
$args1
"
;;
(
3
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
;;
(
4
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
;;
(
5
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
;;
(
6
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
;;
(
7
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
;;
(
8
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
;;
(
9
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
"
$args8
"
;;
esac
fi
# Escape application args
save
()
{
for
i
do
printf
%s
\\
n
"
$i
"
|
sed
"s/'/'
\\\\
''/g;1s/^/'/;
\$
s/
\$
/'
\\\\
/"
;
done
echo
" "
}