From 28400f98e44fe5f6ad204b72713b1806ceda507f Mon Sep 17 00:00:00 2001 From: Dorian Zedler Date: Sat, 19 Jun 2021 09:06:52 +0200 Subject: [PATCH] Start addind share utils and pds generation --- android/AndroidManifest.xml | 18 +- android/build.gradle | 2 + android/res/xml/filepaths.xml | 3 + .../src/de/itsblue/blueROCK/MainActivity.java | 228 ++++++++++ .../ekkescorner/utils/QSharePathResolver.java | 223 ++++++++++ .../org/ekkescorner/utils/QShareUtils.java | 396 ++++++++++++++++++ blueROCK.pro | 50 ++- headers/bluerockbackend.h | 16 +- headers/shareUtils/androidshareutils.h | 48 +++ headers/shareUtils/platformshareutils.h | 46 ++ headers/shareUtils/shareutils.h | 60 +++ resources/qml/Components/SelectorPopup.qml | 1 - resources/qml/Components/SharePopup.qml | 43 ++ resources/qml/Pages/WidgetPage.qml | 22 +- resources/qml/Widgets/ResultWidget.qml | 9 + resources/qml/main.qml | 3 +- resources/qml/qml.qrc | 1 + resources/shared/PosterTemplate.png | Bin 0 -> 159163 bytes resources/shared/PosterTemplate.xcf | Bin 0 -> 246154 bytes resources/shared/shared.qrc | 1 + sources/bluerockbackend.cpp | 19 + sources/shareUtils/androidshareutils.cpp | 348 +++++++++++++++ sources/shareUtils/platformshareutils.cpp | 35 ++ sources/shareUtils/shareutils.cpp | 111 +++++ 24 files changed, 1657 insertions(+), 26 deletions(-) create mode 100644 android/res/xml/filepaths.xml create mode 100755 android/src/de/itsblue/blueROCK/MainActivity.java create mode 100644 android/src/org/ekkescorner/utils/QSharePathResolver.java create mode 100755 android/src/org/ekkescorner/utils/QShareUtils.java create mode 100755 headers/shareUtils/androidshareutils.h create mode 100644 headers/shareUtils/platformshareutils.h create mode 100755 headers/shareUtils/shareutils.h create mode 100644 resources/qml/Components/SharePopup.qml create mode 100644 resources/shared/PosterTemplate.png create mode 100644 resources/shared/PosterTemplate.xcf create mode 100755 sources/shareUtils/androidshareutils.cpp create mode 100644 sources/shareUtils/platformshareutils.cpp create mode 100755 sources/shareUtils/shareutils.cpp diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 6c2852d..65d57e2 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -10,7 +10,7 @@ - + @@ -68,8 +68,24 @@ --> + + + + + + + + + + + + + + + + diff --git a/android/build.gradle b/android/build.gradle index 0051ff0..de92470 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -18,6 +18,7 @@ apply plugin: 'com.android.application' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) + compile 'com.android.support:support-v4:25.3.1' } android { @@ -77,5 +78,6 @@ android { lintOptions { checkReleaseBuilds false + abortOnError false } } diff --git a/android/res/xml/filepaths.xml b/android/res/xml/filepaths.xml new file mode 100644 index 0000000..6b3e3f8 --- /dev/null +++ b/android/res/xml/filepaths.xml @@ -0,0 +1,3 @@ + + + diff --git a/android/src/de/itsblue/blueROCK/MainActivity.java b/android/src/de/itsblue/blueROCK/MainActivity.java new file mode 100755 index 0000000..24d2923 --- /dev/null +++ b/android/src/de/itsblue/blueROCK/MainActivity.java @@ -0,0 +1,228 @@ +// (c) 2017 Ekkehard Gentz (ekke) +// this project is based on ideas from +// http://blog.lasconic.com/share-on-ios-and-android-using-qml/ +// see github project https://github.com/lasconic/ShareUtils-QML +// also inspired by: +// https://www.androidcode.ninja/android-share-intent-example/ +// https://www.calligra.org/blogs/sharing-with-qt-on-android/ +// https://stackoverflow.com/questions/7156932/open-file-in-another-app +// http://www.qtcentre.org/threads/58668-How-to-use-QAndroidJniObject-for-intent-setData +// OpenURL in At Android: got ideas from: +// https://github.com/BernhardWenzel/open-url-in-qt-android +// https://github.com/tobiatesan/android_intents_qt +// +// see also /COPYRIGHT and /LICENSE + +package de.itsblue.blueROCK; + +import org.qtproject.qt5.android.QtNative; + +import org.qtproject.qt5.android.bindings.QtActivity; +import android.os.*; +import android.content.*; +import android.app.*; + +import java.lang.String; +import android.content.Intent; +import java.io.File; +import android.net.Uri; +import android.util.Log; +import android.content.ContentResolver; +import android.webkit.MimeTypeMap; + +import org.ekkescorner.utils.*; + + + +public class MainActivity extends QtActivity +{ + // native - must be implemented in Cpp via JNI + // 'file' scheme or resolved from 'content' scheme: + public static native void setFileUrlReceived(String url); + // InputStream from 'content' scheme: + public static native void setFileReceivedAndSaved(String url); + // + public static native void fireActivityResult(int requestCode, int resultCode); + // + public static native boolean checkFileExits(String url); + + public static boolean isIntentPending; + public static boolean isInitialized; + public static String workingDirPath; + + // Use a custom Chooser without providing own App as share target ! + // see QShareUtils.java createCustomChooserAndStartActivity() + // Selecting your own App as target could cause AndroidOS to call + // onCreate() instead of onNewIntent() + // and then you are in trouble because we're using 'singleInstance' as LaunchMode + // more details: my blog at Qt + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Log.d("ekkescorner", "onCreate QShareActivity"); + // now we're checking if the App was started from another Android App via Intent + Intent theIntent = getIntent(); + if (theIntent != null){ + String theAction = theIntent.getAction(); + if (theAction != null){ + Log.d("ekkescorner onCreate ", theAction); + // QML UI not ready yet + // delay processIntent(); + isIntentPending = true; + } + } + } // onCreate + + // WIP - trying to find a solution to survive a 2nd onCreate + // ongoing discussion in QtMob (Slack) + // from other Apps not respecting that you only have a singleInstance + // there are problems per ex. sharing a file from Google Files App, + // but working well using Xiaomi FileManager App + @Override + public void onDestroy() { + Log.d("ekkescorner", "onDestroy QShareActivity"); + // super.onDestroy(); + // System.exit() closes the App before doing onCreate() again + // then the App was restarted, but looses context + // This works for Samsung My Files + // but Google Files doesn't call onDestroy() + System.exit(0); + } + + // we start Activity with result code + // to test JNI with QAndroidActivityResultReceiver you must comment or rename + // this method here - otherwise you'll get wrong request or result codes + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // Check which request we're responding to + Log.d("ekkescorner onActivityResult", "requestCode: "+requestCode); + if (resultCode == RESULT_OK) { + Log.d("ekkescorner onActivityResult - resultCode: ", "SUCCESS"); + } else { + Log.d("ekkescorner onActivityResult - resultCode: ", "CANCEL"); + } + // hint: result comes back too fast for Action SEND + // if you want to delete/move the File add a Timer w 500ms delay + // see Example App main.qml - delayDeleteTimer + // if you want to revoke permissions for older OS + // it makes sense also do this after the delay + fireActivityResult(requestCode, resultCode); + } + + // if we are opened from other apps: + @Override + public void onNewIntent(Intent intent) { + Log.d("ekkescorner", "onNewIntent"); + super.onNewIntent(intent); + setIntent(intent); + // Intent will be processed, if all is initialized and Qt / QML can handle the event + if(isInitialized) { + processIntent(); + } else { + isIntentPending = true; + } + } // onNewIntent + + public void checkPendingIntents(String workingDir) { + isInitialized = true; + workingDirPath = workingDir; + Log.d("ekkescorner", workingDirPath); + if(isIntentPending) { + isIntentPending = false; + Log.d("ekkescorner", "checkPendingIntents: true"); + processIntent(); + } else { + Log.d("ekkescorner", "nothingPending"); + } + } // checkPendingIntents + + // process the Intent if Action is SEND or VIEW + private void processIntent(){ + Intent intent = getIntent(); + + Uri intentUri; + String intentScheme; + String intentAction; + // we are listening to android.intent.action.SEND or VIEW (see Manifest) + if (intent.getAction().equals("android.intent.action.VIEW")){ + intentAction = "VIEW"; + intentUri = intent.getData(); + } else if (intent.getAction().equals("android.intent.action.SEND")){ + intentAction = "SEND"; + Bundle bundle = intent.getExtras(); + intentUri = (Uri)bundle.get(Intent.EXTRA_STREAM); + } else { + Log.d("ekkescorner Intent unknown action:", intent.getAction()); + return; + } + Log.d("ekkescorner action:", intentAction); + if (intentUri == null){ + Log.d("ekkescorner Intent URI:", "is null"); + return; + } + + Log.d("ekkescorner Intent URI:", intentUri.toString()); + + // content or file + intentScheme = intentUri.getScheme(); + if (intentScheme == null){ + Log.d("ekkescorner Intent URI Scheme:", "is null"); + return; + } + if(intentScheme.equals("file")){ + // URI as encoded string + Log.d("ekkescorner Intent File URI: ", intentUri.toString()); + setFileUrlReceived(intentUri.toString()); + // we are done Qt can deal with file scheme + return; + } + if(!intentScheme.equals("content")){ + Log.d("ekkescorner Intent URI unknown scheme: ", intentScheme); + return; + } + // ok - it's a content scheme URI + // we will try to resolve the Path to a File URI + // if this won't work or if the File cannot be opened, + // we'll try to copy the file into our App working dir via InputStream + // hopefully in most cases PathResolver will give a path + + // you need the file extension, MimeType or Name from ContentResolver ? + // here's HowTo get it: + Log.d("ekkescorner Intent Content URI: ", intentUri.toString()); + ContentResolver cR = this.getContentResolver(); + MimeTypeMap mime = MimeTypeMap.getSingleton(); + String fileExtension = mime.getExtensionFromMimeType(cR.getType(intentUri)); + Log.d("ekkescorner","Intent extension: "+fileExtension); + String mimeType = cR.getType(intentUri); + Log.d("ekkescorner"," Intent MimeType: "+mimeType); + String name = QShareUtils.getContentName(cR, intentUri); + if(name != null) { + Log.d("ekkescorner Intent Name:", name); + } else { + Log.d("ekkescorner Intent Name:", "is NULL"); + } + String filePath; + filePath = QSharePathResolver.getRealPathFromURI(this, intentUri); + if(filePath == null) { + Log.d("ekkescorner QSharePathResolver:", "filePath is NULL"); + } else { + Log.d("ekkescorner QSharePathResolver:", filePath); + // to be safe check if this File Url really can be opened by Qt + // there were problems with MS office apps on Android 7 + if (checkFileExits(filePath)) { + setFileUrlReceived(filePath); + // we are done Qt can deal with file scheme + return; + } + } + + // trying the InputStream way: + filePath = QShareUtils.createFile(cR, intentUri, workingDirPath); + if(filePath == null) { + Log.d("ekkescorner Intent FilePath:", "is NULL"); + return; + } + setFileReceivedAndSaved(filePath); + } // processIntent + +} // class QShareActivity diff --git a/android/src/org/ekkescorner/utils/QSharePathResolver.java b/android/src/org/ekkescorner/utils/QSharePathResolver.java new file mode 100644 index 0000000..f93d1a8 --- /dev/null +++ b/android/src/org/ekkescorner/utils/QSharePathResolver.java @@ -0,0 +1,223 @@ +// from: https://github.com/wkh237/react-native-fetch-blob/blob/master/android/src/main/java/com/RNFetchBlob/Utils/PathResolver.java +// MIT License, see: https://github.com/wkh237/react-native-fetch-blob/blob/master/LICENSE +// original copyright: Copyright (c) 2017 xeiyan@gmail.com +// src slightly modified to be used into Qt Projects: (c) 2017 ekke@ekkes-corner.org + +package org.ekkescorner.utils; + +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.os.Build; +import android.provider.DocumentsContract; +import android.provider.MediaStore; +import android.content.ContentUris; +import android.os.Environment; +import android.content.ContentResolver; +import java.io.File; +import java.io.InputStream; +import java.io.FileOutputStream; +import android.util.Log; +import java.lang.NumberFormatException; + +public class QSharePathResolver { + public static String getRealPathFromURI(final Context context, final Uri uri) { + + final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + + // DocumentProvider + if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) { + // ExternalStorageProvider + if (isExternalStorageDocument(uri)) { + Log.d("ekkescorner"," isExternalStorageDocument"); + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + + if ("primary".equalsIgnoreCase(type)) { + return Environment.getExternalStorageDirectory() + "/" + split[1]; + } + + // TODO handle non-primary volumes + } + // DownloadsProvider + else if (isDownloadsDocument(uri)) { + Log.d("ekkescorner"," isDownloadsDocument"); + final String id = DocumentsContract.getDocumentId(uri); + Log.d("ekkescorner"," getDocumentId "+id); + long longId = 0; + try + { + longId = Long.valueOf(id); + } + catch(NumberFormatException nfe) + { + return getDataColumn(context, uri, null, null); + } + final Uri contentUri = ContentUris.withAppendedId( + Uri.parse("content://downloads/public_downloads"), longId); + + return getDataColumn(context, contentUri, null, null); + } + // MediaProvider + else if (isMediaDocument(uri)) { + Log.d("ekkescorner"," isMediaDocument"); + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + + Uri contentUri = null; + if ("image".equals(type)) { + contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + } else if ("video".equals(type)) { + contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; + } else if ("audio".equals(type)) { + contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; + } + + final String selection = "_id=?"; + final String[] selectionArgs = new String[] { + split[1] + }; + + return getDataColumn(context, contentUri, selection, selectionArgs); + } + else if ("content".equalsIgnoreCase(uri.getScheme())) { + Log.d("ekkescorner"," is uri.getScheme()"); + // Return the remote address + if (isGooglePhotosUri(uri)) + return uri.getLastPathSegment(); + + return getDataColumn(context, uri, null, null); + } + // Other Providers + else{ + Log.d("ekkescorner ","is Other Provider"); + try { + InputStream attachment = context.getContentResolver().openInputStream(uri); + if (attachment != null) { + String filename = getContentName(context.getContentResolver(), uri); + if (filename != null) { + File file = new File(context.getCacheDir(), filename); + FileOutputStream tmp = new FileOutputStream(file); + byte[] buffer = new byte[1024]; + while (attachment.read(buffer) > 0) { + tmp.write(buffer); + } + tmp.close(); + attachment.close(); + return file.getAbsolutePath(); + } + } + } catch (Exception e) { + // TODO SIGNAL shareError() + return null; + } + } + } + // MediaStore (and general) + else if ("content".equalsIgnoreCase(uri.getScheme())) { + Log.d("ekkescorner ","NOT DocumentsContract.isDocumentUri"); + Log.d("ekkescorner"," is uri.getScheme()"); + // Return the remote address + if (isGooglePhotosUri(uri)) + return uri.getLastPathSegment(); + Log.d("ekkescorner"," return: getDataColumn "); + return getDataColumn(context, uri, null, null); + } + // File + else if ("file".equalsIgnoreCase(uri.getScheme())) { + Log.d("ekkescorner ","NOT DocumentsContract.isDocumentUri"); + Log.d("ekkescorner"," is file scheme"); + return uri.getPath(); + } + + return null; + } + + private static String getContentName(ContentResolver resolver, Uri uri) { + Cursor cursor = resolver.query(uri, null, null, null, null); + cursor.moveToFirst(); + int nameIndex = cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME); + if (nameIndex >= 0) { + String name = cursor.getString(nameIndex); + cursor.close(); + return name; + } + cursor.close(); + return null; + } + + /** + * Get the value of the data column for this Uri. This is useful for + * MediaStore Uris, and other file-based ContentProviders. + * + * @param context The context. + * @param uri The Uri to query. + * @param selection (Optional) Filter used in the query. + * @param selectionArgs (Optional) Selection arguments used in the query. + * @return The value of the _data column, which is typically a file path. + */ + public static String getDataColumn(Context context, Uri uri, String selection, + String[] selectionArgs) { + + Cursor cursor = null; + String result = null; + final String column = "_data"; + final String[] projection = { + column + }; + + try { + cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, + null); + if (cursor != null && cursor.moveToFirst()) { + final int index = cursor.getColumnIndexOrThrow(column); + result = cursor.getString(index); + } + } + catch (Exception ex) { + ex.printStackTrace(); + return null; + } + finally { + if (cursor != null) + cursor.close(); + } + return result; + } + + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is ExternalStorageProvider. + */ + public static boolean isExternalStorageDocument(Uri uri) { + return "com.android.externalstorage.documents".equals(uri.getAuthority()); + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is DownloadsProvider. + */ + public static boolean isDownloadsDocument(Uri uri) { + return "com.android.providers.downloads.documents".equals(uri.getAuthority()); + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is MediaProvider. + */ + public static boolean isMediaDocument(Uri uri) { + return "com.android.providers.media.documents".equals(uri.getAuthority()); + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is Google Photos. + */ + public static boolean isGooglePhotosUri(Uri uri) { + return "com.google.android.apps.photos.content".equals(uri.getAuthority()); + } + +} diff --git a/android/src/org/ekkescorner/utils/QShareUtils.java b/android/src/org/ekkescorner/utils/QShareUtils.java new file mode 100755 index 0000000..38a07a7 --- /dev/null +++ b/android/src/org/ekkescorner/utils/QShareUtils.java @@ -0,0 +1,396 @@ +// (c) 2017 Ekkehard Gentz (ekke) +// this project is based on ideas from +// http://blog.lasconic.com/share-on-ios-and-android-using-qml/ +// see github project https://github.com/lasconic/ShareUtils-QML +// also inspired by: +// https://www.androidcode.ninja/android-share-intent-example/ +// https://www.calligra.org/blogs/sharing-with-qt-on-android/ +// https://stackoverflow.com/questions/7156932/open-file-in-another-app +// http://www.qtcentre.org/threads/58668-How-to-use-QAndroidJniObject-for-intent-setData +// https://stackoverflow.com/questions/5734678/custom-filtering-of-intent-chooser-based-on-installed-android-package-name +// see also /COPYRIGHT and /LICENSE + +package org.ekkescorner.utils; + +import org.qtproject.qt5.android.QtNative; + +import java.lang.String; +import android.content.Intent; +import java.io.File; +import android.net.Uri; +import android.util.Log; + +import android.content.ContentResolver; +import android.database.Cursor; +import android.provider.MediaStore; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.FileOutputStream; + +import java.util.List; +import android.content.pm.ResolveInfo; +import java.util.ArrayList; +import android.content.pm.PackageManager; +import java.util.Comparator; +import java.util.Collections; +import android.content.Context; +import android.os.Parcelable; + +import android.os.Build; + +import android.support.v4.content.FileProvider; +import android.support.v4.app.ShareCompat; + +public class QShareUtils +{ + // reference Authority as defined in AndroidManifest.xml + private static String AUTHORITY="de.itsblue.blueROCK.fileprovider"; + + protected QShareUtils() + { + Log.d("ekkescorner", "QShareUtils()"); + } + + public static boolean checkMimeTypeView(String mimeType) { + if (QtNative.activity() == null) + return false; + Intent myIntent = new Intent(); + myIntent.setAction(Intent.ACTION_VIEW); + // without an URI resolve always fails + // an empty URI allows to resolve the Activity + File fileToShare = new File(""); + Uri uri = Uri.fromFile(fileToShare); + myIntent.setDataAndType(uri, mimeType); + + // Verify that the intent will resolve to an activity + if (myIntent.resolveActivity(QtNative.activity().getPackageManager()) != null) { + Log.d("ekkescorner checkMime ", "YEP - we can go on and View"); + return true; + } else { + Log.d("ekkescorner checkMime", "sorry - no App available to View"); + } + return false; + } + + public static boolean checkMimeTypeEdit(String mimeType) { + if (QtNative.activity() == null) + return false; + Intent myIntent = new Intent(); + myIntent.setAction(Intent.ACTION_EDIT); + // without an URI resolve always fails + // an empty URI allows to resolve the Activity + File fileToShare = new File(""); + Uri uri = Uri.fromFile(fileToShare); + myIntent.setDataAndType(uri, mimeType); + + // Verify that the intent will resolve to an activity + if (myIntent.resolveActivity(QtNative.activity().getPackageManager()) != null) { + Log.d("ekkescorner checkMime ", "YEP - we can go on and Edit"); + return true; + } else { + Log.d("ekkescorner checkMime", "sorry - no App available to Edit"); + } + return false; + } + + public static boolean shareText(String text) { + if (QtNative.activity() == null) + return false; + Intent sendIntent = new Intent(); + sendIntent.setAction(Intent.ACTION_SEND); + sendIntent.putExtra(Intent.EXTRA_TEXT, text); + sendIntent.setType("text/plain"); + + // Verify that the intent will resolve to an activity + if (sendIntent.resolveActivity(QtNative.activity().getPackageManager()) != null) { + QtNative.activity().startActivity(sendIntent); + return true; + } else { + Log.d("ekkescorner share", "Intent not resolved"); + } + return false; + } + + // thx @oxied and @pooks for the idea: https://stackoverflow.com/a/18835895/135559 + // theIntent is already configured with all needed properties and flags + // so we only have to add the packageName of targeted app + public static boolean createCustomChooserAndStartActivity(Intent theIntent, String title, int requestId, Uri uri) { + final Context context = QtNative.activity(); + final PackageManager packageManager = context.getPackageManager(); + final boolean isLowerOrEqualsKitKat = Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT; + + // MATCH_DEFAULT_ONLY: Resolution and querying flag. if set, only filters that support the CATEGORY_DEFAULT will be considered for matching. + // Check if there is a default app for this type of content. + ResolveInfo defaultAppInfo = packageManager.resolveActivity(theIntent, PackageManager.MATCH_DEFAULT_ONLY); + if(defaultAppInfo == null) { + Log.d("ekkescorner", title+" PackageManager cannot resolve Activity"); + return false; + } + + // had to remove this check - there can be more Activity names, per ex + // com.google.android.apps.docs.editors.kix.quickword.QuickWordDocumentOpenerActivityAlias + // if (!defaultAppInfo.activityInfo.name.endsWith("ResolverActivity") && !defaultAppInfo.activityInfo.name.endsWith("EditActivity")) { + // Log.d("ekkescorner", title+" defaultAppInfo not Resolver or EditActivity: "+defaultAppInfo.activityInfo.name); + // return false; + //} + + // Retrieve all apps for our intent. Check if there are any apps returned + List appInfoList = packageManager.queryIntentActivities(theIntent, PackageManager.MATCH_DEFAULT_ONLY); + if (appInfoList.isEmpty()) { + Log.d("ekkescorner", title+" appInfoList.isEmpty"); + return false; + } + Log.d("ekkescorner", title+" appInfoList: "+appInfoList.size()); + + // Sort in alphabetical order + Collections.sort(appInfoList, new Comparator() { + @Override + public int compare(ResolveInfo first, ResolveInfo second) { + String firstName = first.loadLabel(packageManager).toString(); + String secondName = second.loadLabel(packageManager).toString(); + return firstName.compareToIgnoreCase(secondName); + } + }); + + List targetedIntents = new ArrayList(); + // Filter itself and create intent with the rest of the apps. + for (ResolveInfo appInfo : appInfoList) { + // get the target PackageName + String targetPackageName = appInfo.activityInfo.packageName; + // we don't want to share with our own app + // in fact sharing with own app with resultCode will crash because doesn't work well with launch mode 'singleInstance' + if (targetPackageName.equals(context.getPackageName())) { + continue; + } + // if you have a blacklist of apps please exclude them here + + // we create the targeted Intent based on our already configured Intent + Intent targetedIntent = new Intent(theIntent); + // now add the target packageName so this Intent will only find the one specific App + targetedIntent.setPackage(targetPackageName); + // collect all these targetedIntents + targetedIntents.add(targetedIntent); + + // legacy support and Workaround for Android bug + // grantUriPermission needed for KITKAT or older + // see https://code.google.com/p/android/issues/detail?id=76683 + // also: https://stackoverflow.com/questions/18249007/how-to-use-support-fileprovider-for-sharing-content-to-other-apps + if(isLowerOrEqualsKitKat) { + Log.d("ekkescorner", "legacy support grantUriPermission"); + context.grantUriPermission(targetPackageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + // attention: you must revoke the permission later, so this only makes sense with getting back a result to know that Intent was done + // I always move or delete the file, so I don't revoke permission + } + } + + // check if there are apps found for our Intent to avoid that there was only our own removed app before + if (targetedIntents.isEmpty()) { + Log.d("ekkescorner", title+" targetedIntents.isEmpty"); + return false; + } + + // now we can create our Intent with custom Chooser + // we need all collected targetedIntents as EXTRA_INITIAL_INTENTS + // we're using the last targetedIntent as initializing Intent, because + // chooser adds its initializing intent to the end of EXTRA_INITIAL_INTENTS :) + Intent chooserIntent = Intent.createChooser(targetedIntents.remove(targetedIntents.size() - 1), title); + if (targetedIntents.isEmpty()) { + Log.d("ekkescorner", title+" only one Intent left for Chooser"); + } else { + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedIntents.toArray(new Parcelable[] {})); + } + // Verify that the intent will resolve to an activity + if (chooserIntent.resolveActivity(QtNative.activity().getPackageManager()) != null) { + if(requestId > 0) { + QtNative.activity().startActivityForResult(chooserIntent, requestId); + } else { + QtNative.activity().startActivity(chooserIntent); + } + return true; + } + Log.d("ekkescorner", title+" Chooser Intent not resolved. Should never happen"); + return false; + } + + // I am deleting the files from shared folder when Activity was done or canceled + // so probably I don't have to revike FilePermissions for older OS + // if you don't delete or move the file: here's what you must done to revoke the access + public static void revokeFilePermissions(String filePath) { + final Context context = QtNative.activity(); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) { + File file = new File(filePath); + Uri uri = FileProvider.getUriForFile(context, AUTHORITY, file); + context.revokeUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + } + } + + public static boolean sendFile(String filePath, String title, String mimeType, int requestId) { + if (QtNative.activity() == null) + return false; + + // using v4 support library create the Intent from ShareCompat + // Intent sendIntent = new Intent(); + Intent sendIntent = ShareCompat.IntentBuilder.from(QtNative.activity()).getIntent(); + sendIntent.setAction(Intent.ACTION_SEND); + + File imageFileToShare = new File(filePath); + + // Using FileProvider you must get the URI from FileProvider using your AUTHORITY + // Uri uri = Uri.fromFile(imageFileToShare); + Uri uri; + try { + uri = FileProvider.getUriForFile(QtNative.activity(), AUTHORITY, imageFileToShare); + } catch (IllegalArgumentException e) { + Log.d("ekkescorner sendFile - cannot be shared: ", filePath); + return false; + } + + Log.d("ekkescorner sendFile", uri.toString()); + sendIntent.putExtra(Intent.EXTRA_STREAM, uri); + + if(mimeType == null || mimeType.isEmpty()) { + // fallback if mimeType not set + mimeType = QtNative.activity().getContentResolver().getType(uri); + Log.d("ekkescorner sendFile guessed mimeType:", mimeType); + } else { + Log.d("ekkescorner sendFile w mimeType:", mimeType); + } + + sendIntent.setType(mimeType); + + sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + sendIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + + return createCustomChooserAndStartActivity(sendIntent, title, requestId, uri); + } + + public static boolean viewFile(String filePath, String title, String mimeType, int requestId) { + if (QtNative.activity() == null) + return false; + + // using v4 support library create the Intent from ShareCompat + // Intent viewIntent = new Intent(); + Intent viewIntent = ShareCompat.IntentBuilder.from(QtNative.activity()).getIntent(); + viewIntent.setAction(Intent.ACTION_VIEW); + + File imageFileToShare = new File(filePath); + + // Using FileProvider you must get the URI from FileProvider using your AUTHORITY + // Uri uri = Uri.fromFile(imageFileToShare); + Uri uri; + try { + uri = FileProvider.getUriForFile(QtNative.activity(), AUTHORITY, imageFileToShare); + } catch (IllegalArgumentException e) { + Log.d("ekkescorner viewFile - cannot be shared: ", filePath); + return false; + } + // now we got a content URI per ex + // content://org.ekkescorner.examples.sharex.fileprovider/my_shared_files/qt-logo.png + // from a fileUrl: + // /data/user/0/org.ekkescorner.examples.sharex/files/share_example_x_files/qt-logo.png + Log.d("ekkescorner viewFile from file path: ", filePath); + Log.d("ekkescorner viewFile to content URI: ", uri.toString()); + + if(mimeType == null || mimeType.isEmpty()) { + // fallback if mimeType not set + mimeType = QtNative.activity().getContentResolver().getType(uri); + Log.d("ekkescorner viewFile guessed mimeType:", mimeType); + } else { + Log.d("ekkescorner viewFile w mimeType:", mimeType); + } + + viewIntent.setDataAndType(uri, mimeType); + + viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + viewIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + + return createCustomChooserAndStartActivity(viewIntent, title, requestId, uri); + } + + public static boolean editFile(String filePath, String title, String mimeType, int requestId) { + if (QtNative.activity() == null) + return false; + + // using v4 support library create the Intent from ShareCompat + // Intent editIntent = new Intent(); + Intent editIntent = ShareCompat.IntentBuilder.from(QtNative.activity()).getIntent(); + editIntent.setAction(Intent.ACTION_EDIT); + + File imageFileToShare = new File(filePath); + + // Using FileProvider you must get the URI from FileProvider using your AUTHORITY + // Uri uri = Uri.fromFile(imageFileToShare); + Uri uri; + try { + uri = FileProvider.getUriForFile(QtNative.activity(), AUTHORITY, imageFileToShare); + } catch (IllegalArgumentException e) { + Log.d("ekkescorner editFile - cannot be shared: ", filePath); + return false; + } + Log.d("ekkescorner editFile", uri.toString()); + + if(mimeType == null || mimeType.isEmpty()) { + // fallback if mimeType not set + mimeType = QtNative.activity().getContentResolver().getType(uri); + Log.d("ekkescorner editFile guessed mimeType:", mimeType); + } else { + Log.d("ekkescorner editFile w mimeType:", mimeType); + } + + editIntent.setDataAndType(uri, mimeType); + + editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + editIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + + return createCustomChooserAndStartActivity(editIntent, title, requestId, uri); + } + + public static String getContentName(ContentResolver cR, Uri uri) { + Cursor cursor = cR.query(uri, null, null, null, null); + cursor.moveToFirst(); + int nameIndex = cursor + .getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME); + if (nameIndex >= 0) { + return cursor.getString(nameIndex); + } else { + return null; + } + } + + public static String createFile(ContentResolver cR, Uri uri, String fileLocation) { + String filePath = null; + try { + InputStream iStream = cR.openInputStream(uri); + if (iStream != null) { + String name = getContentName(cR, uri); + if (name != null) { + filePath = fileLocation + "/" + name; + Log.d("ekkescorner - create File", filePath); + File f = new File(filePath); + FileOutputStream tmp = new FileOutputStream(f); + Log.d("ekkescorner - create File", "new FileOutputStream"); + + byte[] buffer = new byte[1024]; + while (iStream.read(buffer) > 0) { + tmp.write(buffer); + } + tmp.close(); + iStream.close(); + return filePath; + } // name + } // iStream + } catch (FileNotFoundException e) { + e.printStackTrace(); + return filePath; + } catch (IOException e) { + e.printStackTrace(); + return filePath; + } catch (Exception e) { + e.printStackTrace(); + return filePath; + } + return filePath; + } + +} diff --git a/blueROCK.pro b/blueROCK.pro index 5708afc..a5c666b 100644 --- a/blueROCK.pro +++ b/blueROCK.pro @@ -1,4 +1,4 @@ -QT += quick qml quickcontrols2 purchasing widgets +QT += quick qml quickcontrols2 purchasing printsupport CONFIG += c++11 VERSION = 0.5.0 @@ -15,10 +15,23 @@ DEFINES += QT_DEPRECATED_WARNINGS # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 +INCLUDEPATH *= $$PWD/headers + +# Add version to define +DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" + SOURCES += \ + sources/shareUtils/platformshareutils.cpp \ sources/appsettings.cpp \ sources/bluerockbackend.cpp \ - sources/main.cpp + sources/shareUtils/shareutils.cpp \ + sources/main.cpp + +HEADERS += \ + headers/appsettings.h \ + headers/bluerockbackend.h \ + headers/shareUtils/shareutils.h \ + headers/shareUtils/platformshareutils.h RESOURCES += resources/qml/qml.qrc \ resources/shared/shared.qrc \ @@ -37,27 +50,28 @@ qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -# Add version to define -DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" - -HEADERS += \ - headers/appsettings.h \ - headers/bluerockbackend.h - DISTFILES += \ - CHANGELOG.md \ - android/AndroidManifest.xml \ - android/build.gradle \ - android/gradle.properties \ - android/gradle/wrapper/gradle-wrapper.jar \ - android/gradle/wrapper/gradle-wrapper.properties \ - android/gradlew \ - android/gradlew.bat \ - android/res/values/libs.xml + CHANGELOG.md android { QT += androidextras + SOURCES += sources/shareUtils/androidshareutils.cpp + HEADERS += headers/shareUtils/androidshareutils.h + + OTHER_FILES += android/src/org/ekkescorner/utils/QShareUtils.java \ + android/src/org/ekkescorner/utils/QSharePathResolver.java \ + android/src/de/itsblue/blueROCK/MainActivity.java \ + android/AndroidManifest.xml \ + android/build.gradle \ + android/gradle.properties \ + android/gradle/wrapper/gradle-wrapper.jar \ + android/gradle/wrapper/gradle-wrapper.properties \ + android/gradlew \ + android/gradlew.bat \ + android/res/values/libs.xml \ + android/res/xml/filepaths.xml + defineReplace(droidVersionCode) { segments = $$split(1, ".") for (segment, segments): vCode = "$$first(vCode)$$format_number($$segment, width=3 zeropad)" diff --git a/headers/bluerockbackend.h b/headers/bluerockbackend.h index 091b9be..b03b146 100644 --- a/headers/bluerockbackend.h +++ b/headers/bluerockbackend.h @@ -24,6 +24,17 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "shareUtils/shareutils.h" class BlueRockBackend : public QObject { @@ -34,13 +45,16 @@ public: private: QVariantMap senddata(QUrl serviceUrl, QUrlQuery pdata = QUrlQuery()); + ShareUtils* _shareUtils; + signals: public slots: QVariant getWidgetData(QVariantMap params); - QVariantMap getParamsFromUrl(QString url); + void shareResultsAsUrl(QString url); + void shareResultsAsPoster(QString url); }; diff --git a/headers/shareUtils/androidshareutils.h b/headers/shareUtils/androidshareutils.h new file mode 100755 index 0000000..50786fd --- /dev/null +++ b/headers/shareUtils/androidshareutils.h @@ -0,0 +1,48 @@ +// (c) 2017 Ekkehard Gentz (ekke) @ekkescorner +// my blog about Qt for mobile: http://j.mp/qt-x +// see also /COPYRIGHT and /LICENSE + +#ifndef ANDROIDSHAREUTILS_H +#define ANDROIDSHAREUTILS_H + +#include +#include + +#include "shareUtils/platformshareutils.h" + +class AndroidShareUtils : public PlatformShareUtils, public QAndroidActivityResultReceiver +{ +public: + AndroidShareUtils(QObject* parent = nullptr); + bool checkMimeTypeView(const QString &mimeType) override; + bool checkMimeTypeEdit(const QString &mimeType) override; + void shareText(const QString &text) override; + void sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) override; + void viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) override; + void editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) override; + + void handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data) override; + void onActivityResult(int requestCode, int resultCode); + + void checkPendingIntents(const QString workingDirPath) override; + + static AndroidShareUtils* getInstance(); + +public slots: + void setFileUrlReceived(const QString &url); + void setFileReceivedAndSaved(const QString &url); + bool checkFileExits(const QString &url); + +private: + bool mIsEditMode; + qint64 mLastModified; + QString mCurrentFilePath; + + static AndroidShareUtils* mInstance; + + void processActivityResult(int requestCode, int resultCode); + +}; + + +#endif // ANDROIDSHAREUTILS_H diff --git a/headers/shareUtils/platformshareutils.h b/headers/shareUtils/platformshareutils.h new file mode 100644 index 0000000..504983f --- /dev/null +++ b/headers/shareUtils/platformshareutils.h @@ -0,0 +1,46 @@ +// (c) 2017 Ekkehard Gentz (ekke) +// this project is based on ideas from +// http://blog.lasconic.com/share-on-ios-and-android-using-qml/ +// see github project https://github.com/lasconic/ShareUtils-QML +// also inspired by: +// https://www.androidcode.ninja/android-share-intent-example/ +// https://www.calligra.org/blogs/sharing-with-qt-on-android/ +// https://stackoverflow.com/questions/7156932/open-file-in-another-app +// http://www.qtcentre.org/threads/58668-How-to-use-QAndroidJniObject-for-intent-setData +// see also /COPYRIGHT and /LICENSE + +// (c) 2017 Ekkehard Gentz (ekke) @ekkescorner +// my blog about Qt for mobile: http://j.mp/qt-x +// see also /COPYRIGHT and /LICENSE + +#ifndef PLATFORMSHAREUTILS_H +#define PLATFORMSHAREUTILS_H + +#include +#include + +class PlatformShareUtils : public QObject +{ + Q_OBJECT +signals: + void shareEditDone(int requestCode); + void shareFinished(int requestCode); + void shareNoAppAvailable(int requestCode); + void shareError(int requestCode, QString message); + void fileUrlReceived(QString url); + void fileReceivedAndSaved(QString url); + +public: + PlatformShareUtils(QObject *parent = 0); + virtual ~PlatformShareUtils(); + virtual bool checkMimeTypeView(const QString &mimeType); + virtual bool checkMimeTypeEdit(const QString &mimeType); + virtual void shareText(const QString &text); + virtual void sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + virtual void viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + virtual void editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + + virtual void checkPendingIntents(const QString workingDirPath); +}; + +#endif // PLATFORMSHAREUTILS_H diff --git a/headers/shareUtils/shareutils.h b/headers/shareUtils/shareutils.h new file mode 100755 index 0000000..956a316 --- /dev/null +++ b/headers/shareUtils/shareutils.h @@ -0,0 +1,60 @@ +// (c) 2017 Ekkehard Gentz (ekke) +// this project is based on ideas from +// http://blog.lasconic.com/share-on-ios-and-android-using-qml/ +// see github project https://github.com/lasconic/ShareUtils-QML +// also inspired by: +// https://www.androidcode.ninja/android-share-intent-example/ +// https://www.calligra.org/blogs/sharing-with-qt-on-android/ +// https://stackoverflow.com/questions/7156932/open-file-in-another-app +// http://www.qtcentre.org/threads/58668-How-to-use-QAndroidJniObject-for-intent-setData +// see also /COPYRIGHT and /LICENSE + +// (c) 2017 Ekkehard Gentz (ekke) @ekkescorner +// my blog about Qt for mobile: http://j.mp/qt-x +// see also /COPYRIGHT and /LICENSE + +#ifndef SHAREUTILS_H +#define SHAREUTILS_H + +#include +#include + +#include "shareUtils/platformshareutils.h" + +class ShareUtils : public QObject +{ + Q_OBJECT + + +signals: + void shareEditDone(int requestCode); + void shareFinished(int requestCode); + void shareNoAppAvailable(int requestCode); + void shareError(int requestCode, QString message); + void fileUrlReceived(QString url); + void fileReceivedAndSaved(QString url); + +public slots: + void onShareEditDone(int requestCode); + void onShareFinished(int requestCode); + void onShareNoAppAvailable(int requestCode); + void onShareError(int requestCode, QString message); + void onFileUrlReceived(QString url); + void onFileReceivedAndSaved(QString url); + +public: + explicit ShareUtils(QObject *parent = 0); + Q_INVOKABLE bool checkMimeTypeView(const QString &mimeType); + Q_INVOKABLE bool checkMimeTypeEdit(const QString &mimeType); + Q_INVOKABLE void shareText(const QString &text); + Q_INVOKABLE void sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + Q_INVOKABLE void viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + Q_INVOKABLE void editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId); + Q_INVOKABLE void checkPendingIntents(const QString workingDirPath); + +private: + PlatformShareUtils* mPlatformShareUtils; + +}; + +#endif //SHAREUTILS_H diff --git a/resources/qml/Components/SelectorPopup.qml b/resources/qml/Components/SelectorPopup.qml index b598dd5..6cdf282 100644 --- a/resources/qml/Components/SelectorPopup.qml +++ b/resources/qml/Components/SelectorPopup.qml @@ -7,7 +7,6 @@ Dialog { property var dataObj property string subTitle: "" - property int implicitY: parent.height - implicitHeight signal selectionFinished(int index, var data) diff --git a/resources/qml/Components/SharePopup.qml b/resources/qml/Components/SharePopup.qml new file mode 100644 index 0000000..be10465 --- /dev/null +++ b/resources/qml/Components/SharePopup.qml @@ -0,0 +1,43 @@ +import QtQuick 2.0 +import QtQuick.Controls 2.12 +import QtQuick.Layouts 1.12 + +Dialog { + id: control + + property string _shareUrl + + parent: Overlay.overlay + + x: (parent.width - width) * 0.5 + y: (parent.height - height) * 0.5 + + modal: true + + title: "Share these results" + + contentItem: RowLayout { + Repeater { + id: buttonRepeater + property var buttons: [ + ["\uf0c1", "Link", serverConn.shareResultsAsUrl], + ["\uf029", "QR-code", null], + ["\uf1c1", "Poster", serverConn.shareResultsAsPoster], + ] + + model: buttons + + delegate: Button { + flat: true + font.family: fa5solid.name + text: "" + modelData[0] + "

" + modelData[1] + " " + onClicked: buttonRepeater.buttons[index][2](_shareUrl) + } + } + } + + function appear(shareUrl) { + _shareUrl = shareUrl + control.open() + } +} diff --git a/resources/qml/Pages/WidgetPage.qml b/resources/qml/Pages/WidgetPage.qml index 651dadd..cd9ac93 100644 --- a/resources/qml/Pages/WidgetPage.qml +++ b/resources/qml/Pages/WidgetPage.qml @@ -174,6 +174,19 @@ Page { return widgetType } + function encodeQueryData(data) { + const ret = []; + for (let d in data) + ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d])); + return ret.join('&'); + } + + function shareWidget() { + var url = "https://l.bluerock.dev/?" + encodeQueryData(params) + sharePu.appear(url) + console.log("Url will be:", url) + } + Loader { id: widgetLd @@ -207,9 +220,6 @@ Page { delete(widgetLd.sourceComponent) return false } - - - // } function getFile(widgetType) { @@ -295,4 +305,10 @@ Page { } } } + + SharePopup { + id: sharePu + + Material.theme: root.Material.theme + } } diff --git a/resources/qml/Widgets/ResultWidget.qml b/resources/qml/Widgets/ResultWidget.qml index 77e85c4..9a07249 100644 --- a/resources/qml/Widgets/ResultWidget.qml +++ b/resources/qml/Widgets/ResultWidget.qml @@ -65,6 +65,15 @@ DataListView { text: "\uf0e8" font.family: fa5solid.name } + + ToolButton { + id: shareToolBt + + onClicked: shareWidget() + + text: "\uf1e0" + font.family: fa5solid.name + } } property var widgetData: currentWidgetData diff --git a/resources/qml/main.qml b/resources/qml/main.qml index 063b5fa..b60c655 100644 --- a/resources/qml/main.qml +++ b/resources/qml/main.qml @@ -132,9 +132,8 @@ Window { //app.openAthlete() // dorian: 53139 , rustam: 6933 , helen: 53300 //openWidget({nation:'GER'}) //mainStack.push("Pages/AthleteSearchPage.qml") - //openWidget({comp: 11651, cat: 26}) + openWidget({comp: 11651, cat: 26}) //openWidget({person: 6623}) - openWidget({cat: 35, comp: 11181, type: "starters"}) } FontLoader { diff --git a/resources/qml/qml.qrc b/resources/qml/qml.qrc index 13a690e..2d4373e 100644 --- a/resources/qml/qml.qrc +++ b/resources/qml/qml.qrc @@ -28,5 +28,6 @@ Components/DisclaimerDialog.qml Components/ColoredItemDelegate.qml Components/AlignedButton.qml + Components/SharePopup.qml diff --git a/resources/shared/PosterTemplate.png b/resources/shared/PosterTemplate.png new file mode 100644 index 0000000000000000000000000000000000000000..74b8721e2305cbe281c2778d10909902f545261f GIT binary patch literal 159163 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

T~R=sZ6s39RMRS7q>6p#qk0?3oYn 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/sac-dark.png fonts/fa5regular.otf fonts/fa5solid.otf + PosterTemplate.png diff --git a/sources/bluerockbackend.cpp b/sources/bluerockbackend.cpp index b4f9ef8..c81f6dd 100644 --- a/sources/bluerockbackend.cpp +++ b/sources/bluerockbackend.cpp @@ -20,6 +20,8 @@ BlueRockBackend::BlueRockBackend(QObject *parent) : QObject(parent) { + this->_shareUtils = new ShareUtils(this); + this->shareResultsAsPoster("test"); } QVariant BlueRockBackend::getWidgetData(QVariantMap params) { @@ -79,6 +81,23 @@ QVariantMap BlueRockBackend::getParamsFromUrl(QString stringUrl) { return params; } +void BlueRockBackend::shareResultsAsUrl(QString url) { + this->_shareUtils->shareText(url); +} + +void BlueRockBackend::shareResultsAsPoster(QString url) { + QPdfWriter writer("/tmp/test.pdf"); + writer.setPageSize(QPageSize(QPageSize::A4)); + writer.setPageMargins(QMargins(0, 0, 0, 0)); + writer.setResolution(600); + QPainter painter(&writer); + painter.drawText(QRect(0, 0, 1980, 100),Qt::AlignHCenter|Qt::AlignBottom, + "Children's Health Checkup Form"); + QPixmap image(":/PosterTemplate.png"); + painter.drawPixmap(0,0, writer.width(), writer.height(), image); + painter.end(); +} + // ------------------------ // --- Helper functions --- // ------------------------ diff --git a/sources/shareUtils/androidshareutils.cpp b/sources/shareUtils/androidshareutils.cpp new file mode 100755 index 0000000..8390008 --- /dev/null +++ b/sources/shareUtils/androidshareutils.cpp @@ -0,0 +1,348 @@ +// (c) 2017 Ekkehard Gentz (ekke) @ekkescorner +// my blog about Qt for mobile: http://j.mp/qt-x +// see also /COPYRIGHT and /LICENSE + +#include "shareUtils/androidshareutils.h" + +#include +#include +#include + +#include +#include + +const static int RESULT_OK = -1; +const static int RESULT_CANCELED = 0; + +AndroidShareUtils* AndroidShareUtils::mInstance = NULL; + +AndroidShareUtils::AndroidShareUtils(QObject* parent) : PlatformShareUtils(parent) +{ + // we need the instance for JNI Call + mInstance = this; +} + +AndroidShareUtils* AndroidShareUtils::getInstance() +{ + if (!mInstance) { + mInstance = new AndroidShareUtils; + qWarning() << "AndroidShareUtils should be instantiated !"; + } + + return mInstance; +} + +bool AndroidShareUtils::checkMimeTypeView(const QString &mimeType) +{ + QAndroidJniObject jsMime = QAndroidJniObject::fromString(mimeType); + jboolean verified = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "checkMimeTypeView", + "(Ljava/lang/String;)Z", + jsMime.object()); + qDebug() << "View VERIFIED: " << mimeType << " - " << verified; + return verified; +} + +bool AndroidShareUtils::checkMimeTypeEdit(const QString &mimeType) +{ + QAndroidJniObject jsMime = QAndroidJniObject::fromString(mimeType); + jboolean verified = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "checkMimeTypeEdit", + "(Ljava/lang/String;)Z", + jsMime.object()); + qDebug() << "Edit VERIFIED: " << mimeType << " - " << verified; + return verified; +} + +void AndroidShareUtils::shareText(const QString &text) +{ + QAndroidJniObject jsText = QAndroidJniObject::fromString(text); + jboolean ok = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "shareText", + "(Ljava/lang/String;)Z", + jsText.object()); + + if(!ok) { + qWarning() << "Unable to resolve activity from Java"; + emit shareNoAppAvailable(0); + } +} + +/* + * As default we're going the Java - way with one simple JNI call (recommended) + * if altImpl is true we're going the pure JNI way + * + * If a requestId was set we want to get the Activity Result back (recommended) + * We need the Request Id and Result Id to control our workflow +*/ +void AndroidShareUtils::sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mIsEditMode = false; + + QAndroidJniObject jsPath = QAndroidJniObject::fromString(filePath); + QAndroidJniObject jsTitle = QAndroidJniObject::fromString(title); + QAndroidJniObject jsMimeType = QAndroidJniObject::fromString(mimeType); + jboolean ok = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "sendFile", + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z", + jsPath.object(), jsTitle.object(), jsMimeType.object(), requestId); + if(!ok) { + qWarning() << "Unable to resolve activity from Java"; + emit shareNoAppAvailable(requestId); + } +} + +/* + * As default we're going the Java - way with one simple JNI call (recommended) + * if altImpl is true we're going the pure JNI way + * + * If a requestId was set we want to get the Activity Result back (recommended) + * We need the Request Id and Result Id to control our workflow +*/ +void AndroidShareUtils::viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mIsEditMode = false; + + QAndroidJniObject jsPath = QAndroidJniObject::fromString(filePath); + QAndroidJniObject jsTitle = QAndroidJniObject::fromString(title); + QAndroidJniObject jsMimeType = QAndroidJniObject::fromString(mimeType); + jboolean ok = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "viewFile", + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z", + jsPath.object(), jsTitle.object(), jsMimeType.object(), requestId); + if(!ok) { + qWarning() << "Unable to resolve activity from Java"; + emit shareNoAppAvailable(requestId); + } +} + +/* + * As default we're going the Java - way with one simple JNI call (recommended) + * if altImpl is true we're going the pure JNI way + * + * If a requestId was set we want to get the Activity Result back (recommended) + * We need the Request Id and Result Id to control our workflow +*/ +void AndroidShareUtils::editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mIsEditMode = true; + mCurrentFilePath = filePath; + QFileInfo fileInfo = QFileInfo(mCurrentFilePath); + mLastModified = fileInfo.lastModified().toSecsSinceEpoch(); + qDebug() << "LAST MODIFIED: " << mLastModified; + + QAndroidJniObject jsPath = QAndroidJniObject::fromString(filePath); + QAndroidJniObject jsTitle = QAndroidJniObject::fromString(title); + QAndroidJniObject jsMimeType = QAndroidJniObject::fromString(mimeType); + + jboolean ok = QAndroidJniObject::callStaticMethod("org/ekkescorner/utils/QShareUtils", + "editFile", + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z", + jsPath.object(), jsTitle.object(), jsMimeType.object(), requestId); + + if(!ok) { + qWarning() << "Unable to resolve activity from Java"; + emit shareNoAppAvailable(requestId); + } +} + +// used from QAndroidActivityResultReceiver +void AndroidShareUtils::handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data) +{ + Q_UNUSED(data); + qDebug() << "From JNI QAndroidActivityResultReceiver: " << receiverRequestCode << "ResultCode:" << resultCode; + processActivityResult(receiverRequestCode, resultCode); +} + +// used from Activity.java onActivityResult() +void AndroidShareUtils::onActivityResult(int requestCode, int resultCode) +{ + qDebug() << "From Java Activity onActivityResult: " << requestCode << "ResultCode:" << resultCode; + processActivityResult(requestCode, resultCode); +} + +void AndroidShareUtils::processActivityResult(int requestCode, int resultCode) +{ + // we're getting RESULT_OK only if edit is done + if(resultCode == RESULT_OK) { + emit shareEditDone(requestCode); + } else if(resultCode == RESULT_CANCELED) { + if(mIsEditMode) { + // Attention: not all Apps will give you the correct ResultCode: + // Google Fotos will send OK if saved and CANCELED if canceled + // Some Apps always sends CANCELED even if you modified and Saved the File + // so you should check the modified Timestamp of the File to know if + // you should emit shareEditDone() or shareFinished() !!! + QFileInfo fileInfo = QFileInfo(mCurrentFilePath); + qint64 currentModified = fileInfo.lastModified().toSecsSinceEpoch(); + qDebug() << "CURRENT MODIFIED: " << currentModified; + if(currentModified > mLastModified) { + emit shareEditDone(requestCode); + return; + } + } + emit shareFinished(requestCode); + } else { + qDebug() << "wrong result code: " << resultCode << " from request: " << requestCode; + emit shareError(requestCode, tr("Share: an Error occured")); + } +} + +void AndroidShareUtils::checkPendingIntents(const QString workingDirPath) +{ + QAndroidJniObject activity = QtAndroid::androidActivity(); + if(activity.isValid()) { + // create a Java String for the Working Dir Path + QAndroidJniObject jniWorkingDir = QAndroidJniObject::fromString(workingDirPath); + if(!jniWorkingDir.isValid()) { + qWarning() << "QAndroidJniObject jniWorkingDir not valid."; + emit shareError(0, tr("Share: an Error occured\nWorkingDir not valid")); + return; + } + activity.callMethod("checkPendingIntents","(Ljava/lang/String;)V", jniWorkingDir.object()); + qDebug() << "checkPendingIntents: " << workingDirPath; + return; + } + qDebug() << "checkPendingIntents: Activity not valid"; +} + +void AndroidShareUtils::setFileUrlReceived(const QString &url) +{ + if(url.isEmpty()) { + qWarning() << "setFileUrlReceived: we got an empty URL"; + emit shareError(0, tr("Empty URL received")); + return; + } + qDebug() << "AndroidShareUtils setFileUrlReceived: we got the File URL from JAVA: " << url; + QString myUrl; + if(url.startsWith("file://")) { + myUrl= url.right(url.length()-7); + qDebug() << "QFile needs this URL: " << myUrl; + } else { + myUrl= url; + } + + // check if File exists + QFileInfo fileInfo = QFileInfo(myUrl); + if(fileInfo.exists()) { + emit fileUrlReceived(myUrl); + } else { + qDebug() << "setFileUrlReceived: FILE does NOT exist "; + emit shareError(0, tr("File does not exist: %1").arg(myUrl)); + } +} + +void AndroidShareUtils::setFileReceivedAndSaved(const QString &url) +{ + if(url.isEmpty()) { + qWarning() << "setFileReceivedAndSaved: we got an empty URL"; + emit shareError(0, tr("Empty URL received")); + return; + } + qDebug() << "AndroidShareUtils setFileReceivedAndSaved: we got the File URL from JAVA: " << url; + QString myUrl; + if(url.startsWith("file://")) { + myUrl= url.right(url.length()-7); + qDebug() << "QFile needs this URL: " << myUrl; + } else { + myUrl= url; + } + + // check if File exists + QFileInfo fileInfo = QFileInfo(myUrl); + if(fileInfo.exists()) { + emit fileReceivedAndSaved(myUrl); + } else { + qDebug() << "setFileReceivedAndSaved: FILE does NOT exist "; + emit shareError(0, tr("File does not exist: %1").arg(myUrl)); + } +} + +// to be safe we check if a File Url from java really exists for Qt +// if not on the Java side we'll try to read the content as Stream +bool AndroidShareUtils::checkFileExits(const QString &url) +{ + if(url.isEmpty()) { + qWarning() << "checkFileExits: we got an empty URL"; + emit shareError(0, tr("Empty URL received")); + return false; + } + qDebug() << "AndroidShareUtils checkFileExits: we got the File URL from JAVA: " << url; + QString myUrl; + if(url.startsWith("file://")) { + myUrl= url.right(url.length()-7); + qDebug() << "QFile needs this URL: " << myUrl; + } else { + myUrl= url; + } + + // check if File exists + QFileInfo fileInfo = QFileInfo(myUrl); + if(fileInfo.exists()) { + qDebug() << "Yep: the File exists for Qt"; + return true; + } else { + qDebug() << "Uuups: FILE does NOT exist "; + return false; + } +} + +// instead of defining all JNICALL as demonstrated below +// there's another way, making it easier to manage all the methods +// see https://www.kdab.com/qt-android-episode-5/ + +#ifdef __cplusplus +extern "C" { +#endif + +JNIEXPORT void JNICALL +Java_org_ekkescorner_examples_sharex_QShareActivity_setFileUrlReceived(JNIEnv *env, + jobject obj, + jstring url) +{ + const char *urlStr = env->GetStringUTFChars(url, NULL); + Q_UNUSED (obj) + AndroidShareUtils::getInstance()->setFileUrlReceived(urlStr); + env->ReleaseStringUTFChars(url, urlStr); + return; +} + +JNIEXPORT void JNICALL +Java_org_ekkescorner_examples_sharex_QShareActivity_setFileReceivedAndSaved(JNIEnv *env, + jobject obj, + jstring url) +{ + const char *urlStr = env->GetStringUTFChars(url, NULL); + Q_UNUSED (obj) + AndroidShareUtils::getInstance()->setFileReceivedAndSaved(urlStr); + env->ReleaseStringUTFChars(url, urlStr); + return; +} + +JNIEXPORT bool JNICALL +Java_org_ekkescorner_examples_sharex_QShareActivity_checkFileExits(JNIEnv *env, + jobject obj, + jstring url) +{ + const char *urlStr = env->GetStringUTFChars(url, NULL); + Q_UNUSED (obj) + bool exists = AndroidShareUtils::getInstance()->checkFileExits(urlStr); + env->ReleaseStringUTFChars(url, urlStr); + return exists; +} + +JNIEXPORT void JNICALL +Java_org_ekkescorner_examples_sharex_QShareActivity_fireActivityResult(JNIEnv *env, + jobject obj, + jint requestCode, + jint resultCode) +{ + Q_UNUSED (obj) + Q_UNUSED (env) + AndroidShareUtils::getInstance()->onActivityResult(requestCode, resultCode); + return; +} + +#ifdef __cplusplus +} +#endif diff --git a/sources/shareUtils/platformshareutils.cpp b/sources/shareUtils/platformshareutils.cpp new file mode 100644 index 0000000..c90793a --- /dev/null +++ b/sources/shareUtils/platformshareutils.cpp @@ -0,0 +1,35 @@ +#include "shareUtils/platformshareutils.h" + +PlatformShareUtils::PlatformShareUtils(QObject *parent) : QObject(parent) +{ + +} + +PlatformShareUtils::~PlatformShareUtils() { + +} + +bool PlatformShareUtils::checkMimeTypeView(const QString &mimeType) { + qDebug() << "check view for " << mimeType; + return true; +} +bool PlatformShareUtils::checkMimeTypeEdit(const QString &mimeType) { + qDebug() << "check edit for " << mimeType; + return true; +} +void PlatformShareUtils::shareText(const QString &text) { + qDebug() << text; +} +void PlatformShareUtils::sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) { + qDebug() << filePath << " - " << title << "requestId " << requestId << " - " << mimeType << "altImpl? "; +} +void PlatformShareUtils::viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) { + qDebug() << filePath << " - " << title << " requestId: " << requestId << " - " << mimeType << "altImpl? "; +} +void PlatformShareUtils::editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) { + qDebug() << filePath << " - " << title << " requestId: " << requestId << " - " << mimeType << "altImpl? "; +} + +void PlatformShareUtils::checkPendingIntents(const QString workingDirPath) { + qDebug() << "checkPendingIntents " << workingDirPath; +} diff --git a/sources/shareUtils/shareutils.cpp b/sources/shareUtils/shareutils.cpp new file mode 100755 index 0000000..effb0f1 --- /dev/null +++ b/sources/shareUtils/shareutils.cpp @@ -0,0 +1,111 @@ +// (c) 2017 Ekkehard Gentz (ekke) @ekkescorner +// my blog about Qt for mobile: http://j.mp/qt-x +// see also /COPYRIGHT and /LICENSE + +#include "shareUtils/shareutils.h" + +#ifdef Q_OS_IOS +#include "cpp/ios/iosshareutils.hpp" +#endif + +#ifdef Q_OS_ANDROID +#include "shareUtils/androidshareutils.h" +#endif + +ShareUtils::ShareUtils(QObject *parent) + : QObject(parent) +{ +#if defined(Q_OS_IOS) + mPlatformShareUtils = new IosShareUtils(this); +#elif defined(Q_OS_ANDROID) + mPlatformShareUtils = new AndroidShareUtils(this); +#else + mPlatformShareUtils = new PlatformShareUtils(this); +#endif + + bool connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::shareEditDone, this, &ShareUtils::onShareEditDone); + Q_ASSERT(connectResult); + + connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::shareFinished, this, &ShareUtils::onShareFinished); + Q_ASSERT(connectResult); + + connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::shareNoAppAvailable, this, &ShareUtils::onShareNoAppAvailable); + Q_ASSERT(connectResult); + + connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::shareError, this, &ShareUtils::onShareError); + Q_ASSERT(connectResult); + + connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::fileUrlReceived, this, &ShareUtils::onFileUrlReceived); + Q_ASSERT(connectResult); + + connectResult = connect(mPlatformShareUtils, &PlatformShareUtils::fileReceivedAndSaved, this, &ShareUtils::onFileReceivedAndSaved); + Q_ASSERT(connectResult); + + Q_UNUSED(connectResult); +} + +bool ShareUtils::checkMimeTypeView(const QString &mimeType) +{ + return mPlatformShareUtils->checkMimeTypeView(mimeType); +} + +bool ShareUtils::checkMimeTypeEdit(const QString &mimeType) +{ + return mPlatformShareUtils->checkMimeTypeEdit(mimeType); +} + +void ShareUtils::shareText(const QString &text) +{ + mPlatformShareUtils->shareText(text); +} + +void ShareUtils::sendFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mPlatformShareUtils->sendFile(filePath, title, mimeType, requestId); +} + +void ShareUtils::viewFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mPlatformShareUtils->viewFile(filePath, title, mimeType, requestId); +} + +void ShareUtils::editFile(const QString &filePath, const QString &title, const QString &mimeType, const int &requestId) +{ + mPlatformShareUtils->editFile(filePath, title, mimeType, requestId); +} + +void ShareUtils::checkPendingIntents(const QString workingDirPath) +{ + mPlatformShareUtils->checkPendingIntents(workingDirPath); +} + +void ShareUtils::onShareEditDone(int requestCode) +{ + emit shareEditDone(requestCode); +} + +void ShareUtils::onShareFinished(int requestCode) +{ + emit shareFinished(requestCode); +} + +void ShareUtils::onShareNoAppAvailable(int requestCode) +{ + emit shareNoAppAvailable(requestCode); +} + +void ShareUtils::onShareError(int requestCode, QString message) +{ + emit shareError(requestCode, message); +} + +void ShareUtils::onFileUrlReceived(QString url) +{ + emit fileUrlReceived(url); +} + +void ShareUtils::onFileReceivedAndSaved(QString url) +{ + emit fileReceivedAndSaved(url); +} +