subsurface/android-mobile/AndroidManifest.xml
Dirk Hohndel aa41fbbf79 Android: add java code to share files
Android's sandbox makes us jump through hoops in order to share files
with other apps. We need to declare a file provider and use specific
paths where the files are located.

Then we have java code (I couldn't make it work as JNI) that takes the
filenames and creates content:// URIs for them and then hands those off
to a sharing activity that is provided by Android.

This can then be used to create attachments for support emails, or to
share the log files with other apps - both of which will solve the
annoying maximum log file length that we have with using the binder to
add the log file text to the message body.

This also finally replaces the 'compile' directive in build.gradle with
'implementation' - removing a warning that we've had for ages.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2022-03-01 14:16:25 -08:00

113 lines
4.9 KiB
XML

<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.subsurfacedivelog.mobile"
android:installLocation="auto"
android:versionCode="-- %%INSERT_VERSION_CODE%% --"
android:versionName="-- %%INSERT_VERSION_NAME%% --" >
<application
android:name="org.qtproject.qt5.android.bindings.QtApplication"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:extractNativeLibs="true"
android:icon="@drawable/subsurface_mobile_icon"
android:networkSecurityConfig="@xml/network_security_config" >
<activity
android:name="org.subsurfacedivelog.mobile.SubsurfaceMobileActivity"
android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="unspecified" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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%% --" />
<!-- Splash screen -->
<!-- <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/subsurface_mobile_splash" /> -->
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash" />
<!-- Splash screen -->
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
<!-- support more aspect ratios -->
<meta-data android:name="android.max_aspect" android:value="3" />
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="org.subsurfacedivelog.mobile.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
</application>
<uses-sdk android:minSdkVersion="21"
android:targetSdkVersion="30" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--
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.
-->
<!-- %% no space here INSERT_FEATURES -->
</manifest>