mirror of
https://github.com/QuasarApp/QtAndroidTools.git
synced 2025-04-26 13:04:32 +00:00
Added code for receive multiple shared data
This commit is contained in:
parent
e6d0187db5
commit
699d39d528
@ -44,7 +44,7 @@ QAndroidSharing::QAndroidSharing() : m_JavaSharing("com/falsinsoft/qtandroidtool
|
||||
JniEnv->DeleteLocalRef(ObjectClass);
|
||||
}
|
||||
|
||||
CheckSharingRequest();
|
||||
CheckReceivedSharingRequest();
|
||||
}
|
||||
|
||||
QObject* QAndroidSharing::qmlInstance(QQmlEngine *engine, QJSEngine *scriptEngine)
|
||||
@ -60,28 +60,28 @@ QAndroidSharing* QAndroidSharing::instance()
|
||||
return m_pInstance;
|
||||
}
|
||||
|
||||
QAndroidSharing::ACTION_ID QAndroidSharing::getAction() const
|
||||
QAndroidSharing::ACTION_ID QAndroidSharing::getReceivedSharingAction() const
|
||||
{
|
||||
return m_Action;
|
||||
return m_ReceivedSharingAction;
|
||||
}
|
||||
|
||||
QString QAndroidSharing::getMimeType() const
|
||||
QString QAndroidSharing::getReceivedSharingMimeType() const
|
||||
{
|
||||
return m_MimeType;
|
||||
return m_ReceivedSharingMimeType;
|
||||
}
|
||||
|
||||
void QAndroidSharing::CheckSharingRequest()
|
||||
void QAndroidSharing::CheckReceivedSharingRequest()
|
||||
{
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
QAndroidJniObject MimeTypeObj;
|
||||
|
||||
m_Action = static_cast<ACTION_ID>(m_JavaSharing.callMethod<jint>("getAction", "()I"));
|
||||
m_ReceivedSharingAction = static_cast<ACTION_ID>(m_JavaSharing.callMethod<jint>("getReceivedSharingAction", "()I"));
|
||||
|
||||
MimeTypeObj = m_JavaSharing.callObjectMethod("getMimeType", "()Ljava/lang/String;");
|
||||
MimeTypeObj = m_JavaSharing.callObjectMethod("getReceivedSharingMimeType", "()Ljava/lang/String;");
|
||||
if(MimeTypeObj.isValid())
|
||||
{
|
||||
m_MimeType = MimeTypeObj.toString();
|
||||
m_ReceivedSharingMimeType = MimeTypeObj.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -99,11 +99,11 @@ bool QAndroidSharing::shareText(const QString &Text)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool QAndroidSharing::shareData(const QString &MimeType, const QString &DataFilePath)
|
||||
bool QAndroidSharing::shareBinaryData(const QString &MimeType, const QString &DataFilePath)
|
||||
{
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
return m_JavaSharing.callMethod<jboolean>("shareData",
|
||||
return m_JavaSharing.callMethod<jboolean>("shareBinaryData",
|
||||
"(Ljava/lang/String;Ljava/lang/String;)Z",
|
||||
QAndroidJniObject::fromString(MimeType).object<jstring>(),
|
||||
QAndroidJniObject::fromString(DataFilePath).object<jstring>()
|
||||
@ -113,13 +113,13 @@ bool QAndroidSharing::shareData(const QString &MimeType, const QString &DataFile
|
||||
return false;
|
||||
}
|
||||
|
||||
QString QAndroidSharing::getSharedText()
|
||||
QString QAndroidSharing::getReceivedSharedText()
|
||||
{
|
||||
QString SharedText;
|
||||
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
const QAndroidJniObject SharedTextObj = m_JavaSharing.callObjectMethod("getSharedText", "()Ljava/lang/String;");
|
||||
const QAndroidJniObject SharedTextObj = m_JavaSharing.callObjectMethod("getReceivedSharedText", "()Ljava/lang/String;");
|
||||
|
||||
if(SharedTextObj.isValid())
|
||||
{
|
||||
@ -130,13 +130,13 @@ QString QAndroidSharing::getSharedText()
|
||||
return SharedText;
|
||||
}
|
||||
|
||||
QByteArray QAndroidSharing::getSharedData()
|
||||
QByteArray QAndroidSharing::getReceivedSharedBinaryData()
|
||||
{
|
||||
QByteArray SharedData;
|
||||
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
const QAndroidJniObject SharedDataObj = m_JavaSharing.callObjectMethod("getSharedData", "()[B");
|
||||
const QAndroidJniObject SharedDataObj = m_JavaSharing.callObjectMethod("getReceivedSharedBinaryData", "()[B");
|
||||
|
||||
if(SharedDataObj.isValid())
|
||||
{
|
||||
@ -147,6 +147,31 @@ QByteArray QAndroidSharing::getSharedData()
|
||||
return SharedData;
|
||||
}
|
||||
|
||||
QVariantList QAndroidSharing::getReceivedMultipleSharedBinaryData()
|
||||
{
|
||||
QVariantList MultipleSharedData;
|
||||
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
const QAndroidJniObject MultipleSharedDataObj = m_JavaSharing.callObjectMethod("getReceivedMultipleSharedBinaryData", "()[[B");
|
||||
|
||||
if(MultipleSharedDataObj.isValid())
|
||||
{
|
||||
const jobjectArray DataArray = MultipleSharedDataObj.object<jobjectArray>();
|
||||
QAndroidJniEnvironment pEnv;
|
||||
int ArraySize;
|
||||
|
||||
ArraySize = pEnv->GetArrayLength(DataArray);
|
||||
for(int i = 0; i < ArraySize; i++)
|
||||
{
|
||||
MultipleSharedData << ConvertByteArray(QAndroidJniObject(pEnv->GetObjectArrayElement(DataArray, i)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return MultipleSharedData;
|
||||
}
|
||||
|
||||
bool QAndroidSharing::requestSharedFile(const QString &MimeType)
|
||||
{
|
||||
if(m_JavaSharing.isValid())
|
||||
@ -165,36 +190,44 @@ bool QAndroidSharing::requestSharedFile(const QString &MimeType)
|
||||
return false;
|
||||
}
|
||||
|
||||
QByteArray QAndroidSharing::getRequestedSharedFile()
|
||||
bool QAndroidSharing::saveRequestedSharedFile(const QString &FilePath)
|
||||
{
|
||||
QByteArray SharedFileData;
|
||||
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
const QAndroidJniObject SharedFileDataObj = m_JavaSharing.callObjectMethod("getRequestedSharedFile", "()[B");
|
||||
|
||||
if(SharedFileDataObj.isValid())
|
||||
{
|
||||
SharedFileData = ConvertByteArray(SharedFileDataObj);
|
||||
const QByteArray SharedFileData = ConvertByteArray(SharedFileDataObj);
|
||||
QFile SharedFile(FilePath);
|
||||
|
||||
if(SharedFile.open(QIODevice::WriteOnly) == true)
|
||||
{
|
||||
if(SharedFile.write(SharedFileData) == SharedFileData.size())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
SharedFile.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return SharedFileData;
|
||||
return false;
|
||||
}
|
||||
|
||||
void QAndroidSharing::closeSharedFile()
|
||||
void QAndroidSharing::closeRequestedSharedFile()
|
||||
{
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
m_JavaSharing.callMethod<void>("closeSharedFile");
|
||||
m_JavaSharing.callMethod<void>("closeRequestedSharedFile");
|
||||
}
|
||||
}
|
||||
|
||||
bool QAndroidSharing::returnSharedFile(bool FileAvailable, const QString &MimeType, const QString &FilePath)
|
||||
bool QAndroidSharing::shareFile(bool FileAvailable, const QString &MimeType, const QString &FilePath)
|
||||
{
|
||||
if(m_JavaSharing.isValid())
|
||||
{
|
||||
return m_JavaSharing.callMethod<jboolean>("returnSharedFile",
|
||||
return m_JavaSharing.callMethod<jboolean>("shareFile",
|
||||
"(ZLjava/lang/String;Ljava/lang/String;)Z",
|
||||
FileAvailable,
|
||||
QAndroidJniObject::fromString(MimeType).object<jstring>(),
|
||||
@ -238,7 +271,7 @@ void QAndroidSharing::RequestedSharedFileInfo(JNIEnv *env, jobject thiz, jstring
|
||||
|
||||
if(m_pInstance != nullptr)
|
||||
{
|
||||
emit m_pInstance->requestedSharedFileReadyToGet(QAndroidJniObject(mimeType).toString(), QAndroidJniObject(name).toString(), size);
|
||||
emit m_pInstance->requestedSharedFileReadyToSave(QAndroidJniObject(mimeType).toString(), QAndroidJniObject(name).toString(), size);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,8 +28,8 @@
|
||||
|
||||
class QAndroidSharing : public QObject, public QAndroidActivityResultReceiver
|
||||
{
|
||||
Q_PROPERTY(ACTION_ID action READ getAction CONSTANT)
|
||||
Q_PROPERTY(QString mimeType READ getMimeType CONSTANT)
|
||||
Q_PROPERTY(ACTION_ID receivedSharingAction READ getReceivedSharingAction CONSTANT)
|
||||
Q_PROPERTY(QString receivedSharingMimeType READ getReceivedSharingMimeType CONSTANT)
|
||||
Q_DISABLE_COPY(QAndroidSharing)
|
||||
Q_ENUMS(ACTION_ID)
|
||||
Q_OBJECT
|
||||
@ -50,32 +50,33 @@ public:
|
||||
static QAndroidSharing* instance();
|
||||
|
||||
Q_INVOKABLE bool shareText(const QString &Text);
|
||||
Q_INVOKABLE bool shareData(const QString &MimeType, const QString &DataFilePath);
|
||||
Q_INVOKABLE QString getSharedText();
|
||||
Q_INVOKABLE QByteArray getSharedData();
|
||||
Q_INVOKABLE bool shareBinaryData(const QString &MimeType, const QString &DataFilePath);
|
||||
Q_INVOKABLE QString getReceivedSharedText();
|
||||
Q_INVOKABLE QByteArray getReceivedSharedBinaryData();
|
||||
Q_INVOKABLE QVariantList getReceivedMultipleSharedBinaryData();
|
||||
Q_INVOKABLE bool requestSharedFile(const QString &MimeType);
|
||||
Q_INVOKABLE QByteArray getRequestedSharedFile();
|
||||
Q_INVOKABLE void closeSharedFile();
|
||||
Q_INVOKABLE bool returnSharedFile(bool FileAvailable, const QString &MimeType = QString(), const QString &FilePath = QString());
|
||||
Q_INVOKABLE bool saveRequestedSharedFile(const QString &FilePath);
|
||||
Q_INVOKABLE void closeRequestedSharedFile();
|
||||
Q_INVOKABLE bool shareFile(bool FileAvailable, const QString &MimeType = QString(), const QString &FilePath = QString());
|
||||
|
||||
ACTION_ID getAction() const;
|
||||
QString getMimeType() const;
|
||||
ACTION_ID getReceivedSharingAction() const;
|
||||
QString getReceivedSharingMimeType() const;
|
||||
|
||||
signals:
|
||||
void requestedSharedFileReadyToGet(const QString &mimeType, const QString &name, long size);
|
||||
void requestedSharedFileReadyToSave(const QString &mimeType, const QString &name, long size);
|
||||
void requestedSharedFileNotAvailable();
|
||||
|
||||
private:
|
||||
const QAndroidJniObject m_JavaSharing;
|
||||
static QAndroidSharing *m_pInstance;
|
||||
const int m_SharedFileRequestId = 9002;
|
||||
ACTION_ID m_Action = ACTION_NONE;
|
||||
QString m_MimeType;
|
||||
ACTION_ID m_ReceivedSharingAction = ACTION_NONE;
|
||||
QString m_ReceivedSharingMimeType;
|
||||
|
||||
void handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data) override;
|
||||
|
||||
static void RequestedSharedFileInfo(JNIEnv *env, jobject thiz, jstring mimeType, jstring name, jlong size);
|
||||
|
||||
inline QByteArray ConvertByteArray(const QAndroidJniObject &JavaByteArray);
|
||||
void CheckSharingRequest();
|
||||
void CheckReceivedSharingRequest();
|
||||
};
|
||||
|
@ -112,6 +112,35 @@ bool QtAndroidTools::removeImage(const QString &Name)
|
||||
return (m_PhotoMap.remove(Name) > 0) ? true : false;
|
||||
}
|
||||
|
||||
bool QtAndroidTools::binaryDataToFile(const QByteArray &BinaryData, const QString &FilePath)
|
||||
{
|
||||
QFile BinaryFile(FilePath);
|
||||
|
||||
if(BinaryFile.open(QIODevice::WriteOnly) == true)
|
||||
{
|
||||
if(BinaryFile.write(BinaryData) == BinaryData.size())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
BinaryFile.remove();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QByteArray QtAndroidTools::fileToBinaryData(const QString &FilePath)
|
||||
{
|
||||
QFile BinaryFile(FilePath);
|
||||
QByteArray BinaryData;
|
||||
|
||||
if(BinaryFile.open(QIODevice::ReadOnly) == true)
|
||||
{
|
||||
BinaryData = BinaryFile.readAll();
|
||||
}
|
||||
|
||||
return BinaryData;
|
||||
}
|
||||
|
||||
void QtAndroidTools::InitializeQmlTools()
|
||||
{
|
||||
qmlRegisterSingletonType<QtAndroidTools>("QtAndroidTools", 1, 0, "QtAndroidTools", &QtAndroidTools::qmlInstance);
|
||||
|
@ -71,6 +71,8 @@ public:
|
||||
|
||||
Q_INVOKABLE bool insertImage(const QString &Name, const QByteArray &Data);
|
||||
Q_INVOKABLE bool removeImage(const QString &Name);
|
||||
Q_INVOKABLE bool binaryDataToFile(const QByteArray &BinaryData, const QString &FilePath);
|
||||
Q_INVOKABLE QByteArray fileToBinaryData(const QString &FilePath);
|
||||
|
||||
private:
|
||||
static QtAndroidTools *m_pInstance;
|
||||
|
@ -45,23 +45,22 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileDescriptor;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class AndroidSharing
|
||||
{
|
||||
private static final String TAG = "AndroidSharing";
|
||||
private final Activity mActivityInstance;
|
||||
private final Intent mActivityIntent;
|
||||
private ParcelFileDescriptor mInputSharedFile = null;
|
||||
private ParcelFileDescriptor mRequestedSharedFile = null;
|
||||
|
||||
public AndroidSharing(Activity ActivityInstance)
|
||||
{
|
||||
mActivityInstance = ActivityInstance;
|
||||
mActivityIntent = ActivityInstance.getIntent();
|
||||
}
|
||||
|
||||
public int getAction()
|
||||
public int getReceivedSharingAction()
|
||||
{
|
||||
final String ActionValue = mActivityIntent.getAction();
|
||||
final String ActionValue = mActivityInstance.getIntent().getAction();
|
||||
int ActionId = ACTION_NONE;
|
||||
|
||||
if(ActionValue != null)
|
||||
@ -83,43 +82,78 @@ public class AndroidSharing
|
||||
return ActionId;
|
||||
}
|
||||
|
||||
public String getMimeType()
|
||||
public String getReceivedSharingMimeType()
|
||||
{
|
||||
return mActivityIntent.getType();
|
||||
return mActivityInstance.getIntent().getType();
|
||||
}
|
||||
|
||||
public String getSharedText()
|
||||
public String getReceivedSharedText()
|
||||
{
|
||||
return mActivityIntent.getStringExtra(Intent.EXTRA_TEXT);
|
||||
return mActivityInstance.getIntent().getStringExtra(Intent.EXTRA_TEXT);
|
||||
}
|
||||
|
||||
public byte[] getSharedData()
|
||||
public byte[] getReceivedSharedBinaryData()
|
||||
{
|
||||
final Uri DataUri = (Uri)mActivityIntent.getParcelableExtra(Intent.EXTRA_STREAM);
|
||||
final Uri DataUri = (Uri) mActivityInstance.getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
|
||||
byte[] ByteArray = null;
|
||||
InputStream DataStream;
|
||||
|
||||
try
|
||||
if(DataUri != null)
|
||||
{
|
||||
DataStream = mActivityInstance.getContentResolver().openInputStream(DataUri);
|
||||
ByteArray = new byte[DataStream.available()];
|
||||
DataStream.read(ByteArray);
|
||||
}
|
||||
catch(FileNotFoundException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
return null;
|
||||
try
|
||||
{
|
||||
final InputStream DataStream = mActivityInstance.getContentResolver().openInputStream(DataUri);
|
||||
ByteArray = new byte[DataStream.available()];
|
||||
DataStream.read(ByteArray);
|
||||
}
|
||||
catch(FileNotFoundException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return ByteArray;
|
||||
}
|
||||
|
||||
public byte[][] getReceivedMultipleSharedBinaryData()
|
||||
{
|
||||
final ArrayList<Uri> UriArray = mActivityInstance.getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);
|
||||
byte[][] MultipleByteArray = null;
|
||||
|
||||
if(UriArray != null)
|
||||
{
|
||||
final int UriNum = UriArray.size();
|
||||
|
||||
MultipleByteArray = new byte[UriNum][];
|
||||
|
||||
for(int i = 0; i < UriNum; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
final InputStream DataStream = mActivityInstance.getContentResolver().openInputStream(UriArray.get(i));
|
||||
MultipleByteArray[i] = new byte[DataStream.available()];
|
||||
DataStream.read(MultipleByteArray[i]);
|
||||
}
|
||||
catch(FileNotFoundException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return MultipleByteArray;
|
||||
}
|
||||
|
||||
public boolean shareText(String Text)
|
||||
{
|
||||
Intent SendIntent = new Intent();
|
||||
final Intent SendIntent = new Intent();
|
||||
|
||||
SendIntent.setAction(Intent.ACTION_SEND);
|
||||
SendIntent.putExtra(Intent.EXTRA_TEXT, Text);
|
||||
@ -129,10 +163,10 @@ public class AndroidSharing
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean shareData(String MimeType, String DataFilePath)
|
||||
public boolean shareBinaryData(String MimeType, String DataFilePath)
|
||||
{
|
||||
final String PackageName = mActivityInstance.getApplicationContext().getPackageName();
|
||||
Intent SendIntent = new Intent();
|
||||
final Intent SendIntent = new Intent();
|
||||
Uri FileUri;
|
||||
|
||||
try
|
||||
@ -157,10 +191,10 @@ public class AndroidSharing
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean returnSharedFile(boolean FileAvailable, String MimeType, String FilePath)
|
||||
public boolean shareFile(boolean FileAvailable, String MimeType, String FilePath)
|
||||
{
|
||||
final String PackageName = mActivityInstance.getApplicationContext().getPackageName();
|
||||
Intent ReturnIntent = new Intent(PackageName + ".ACTION_RETURN_FILE");
|
||||
final Intent ReturnFileIntent = new Intent(PackageName + ".ACTION_RETURN_FILE");
|
||||
|
||||
if(FileAvailable == true)
|
||||
{
|
||||
@ -179,14 +213,14 @@ public class AndroidSharing
|
||||
return false;
|
||||
}
|
||||
|
||||
ReturnIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
ReturnIntent.setDataAndType(FileUri, MimeType);
|
||||
mActivityInstance.setResult(Activity.RESULT_OK, ReturnIntent);
|
||||
ReturnFileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
ReturnFileIntent.setDataAndType(FileUri, MimeType);
|
||||
mActivityInstance.setResult(Activity.RESULT_OK, ReturnFileIntent);
|
||||
}
|
||||
else
|
||||
{
|
||||
ReturnIntent.setDataAndType(null, "");
|
||||
mActivityInstance.setResult(Activity.RESULT_CANCELED, ReturnIntent);
|
||||
ReturnFileIntent.setDataAndType(null, "");
|
||||
mActivityInstance.setResult(Activity.RESULT_CANCELED, ReturnFileIntent);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -196,12 +230,11 @@ public class AndroidSharing
|
||||
{
|
||||
byte[] ByteArray = null;
|
||||
|
||||
if(mInputSharedFile != null)
|
||||
if(mRequestedSharedFile != null)
|
||||
{
|
||||
final FileInputStream DataStream = new FileInputStream(mInputSharedFile.getFileDescriptor());
|
||||
|
||||
try
|
||||
{
|
||||
final FileInputStream DataStream = new FileInputStream(mRequestedSharedFile.getFileDescriptor());
|
||||
ByteArray = new byte[DataStream.available()];
|
||||
DataStream.read(ByteArray);
|
||||
}
|
||||
@ -210,7 +243,7 @@ public class AndroidSharing
|
||||
return null;
|
||||
}
|
||||
|
||||
closeSharedFile();
|
||||
closeRequestedSharedFile();
|
||||
}
|
||||
|
||||
return ByteArray;
|
||||
@ -218,7 +251,7 @@ public class AndroidSharing
|
||||
|
||||
public Intent getRequestSharedFileIntent(String MimeType)
|
||||
{
|
||||
Intent RequestFileIntent = new Intent(Intent.ACTION_PICK);
|
||||
final Intent RequestFileIntent = new Intent(Intent.ACTION_PICK);
|
||||
RequestFileIntent.setType(MimeType);
|
||||
return RequestFileIntent;
|
||||
}
|
||||
@ -231,11 +264,11 @@ public class AndroidSharing
|
||||
Cursor DataCursor;
|
||||
long FileSize;
|
||||
|
||||
closeSharedFile();
|
||||
closeRequestedSharedFile();
|
||||
|
||||
try
|
||||
{
|
||||
mInputSharedFile = Resolver.openFileDescriptor(SharedFileUri, "r");
|
||||
mRequestedSharedFile = Resolver.openFileDescriptor(SharedFileUri, "r");
|
||||
}
|
||||
catch(FileNotFoundException e)
|
||||
{
|
||||
@ -253,18 +286,18 @@ public class AndroidSharing
|
||||
return true;
|
||||
}
|
||||
|
||||
public void closeSharedFile()
|
||||
public void closeRequestedSharedFile()
|
||||
{
|
||||
if(mInputSharedFile != null)
|
||||
if(mRequestedSharedFile != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
mInputSharedFile.close();
|
||||
mRequestedSharedFile.close();
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}
|
||||
mInputSharedFile = null;
|
||||
mRequestedSharedFile = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ ApplicationWindow {
|
||||
title: "QtAndroidTools Demo"
|
||||
|
||||
Component.onCompleted: {
|
||||
if(QtAndroidSharing.action !== QtAndroidSharing.ACTION_NONE)
|
||||
if(QtAndroidSharing.receivedSharingAction !== QtAndroidSharing.ACTION_NONE)
|
||||
{
|
||||
stackView.push("qrc:/tools/AndroidSharing.qml");
|
||||
}
|
||||
|
@ -8,21 +8,21 @@ Page {
|
||||
padding: 20
|
||||
|
||||
Component.onCompleted: {
|
||||
if(QtAndroidSharing.action === QtAndroidSharing.ACTION_SEND)
|
||||
if(QtAndroidSharing.receivedSharingAction === QtAndroidSharing.ACTION_SEND)
|
||||
{
|
||||
if(QtAndroidSharing.mimeType === "text/plain")
|
||||
if(QtAndroidSharing.receivedSharingMimeType === "text/plain")
|
||||
{
|
||||
receivedSharedText.text = QtAndroidSharing.getSharedText();
|
||||
receivedSharedText.text = QtAndroidSharing.getReceivedSharedText();
|
||||
receivedSharedText.open();
|
||||
}
|
||||
else if(QtAndroidSharing.mimeType.startsWith("image") === true)
|
||||
else if(QtAndroidSharing.receivedSharingMimeType.startsWith("image") === true)
|
||||
{
|
||||
QtAndroidTools.insertImage("SharedImage", QtAndroidSharing.getSharedData());
|
||||
QtAndroidTools.insertImage("SharedImage", QtAndroidSharing.getReceivedSharedBinaryData());
|
||||
sharedImage.source = "image://QtAndroidTools/SharedImage";
|
||||
receivedSharedImage.open();
|
||||
}
|
||||
}
|
||||
else if(QtAndroidSharing.action === QtAndroidSharing.ACTION_PICK)
|
||||
else if(QtAndroidSharing.receivedSharingAction === QtAndroidSharing.ACTION_PICK)
|
||||
{
|
||||
imageToShareDialog.open();
|
||||
}
|
||||
@ -30,42 +30,28 @@ Page {
|
||||
|
||||
Connections {
|
||||
target: QtAndroidSharing
|
||||
onRequestedSharedFileReadyToGet: {
|
||||
onRequestedSharedFileReadyToSave: {
|
||||
requestedSharedFile.text = "Name: " + name + "\nSize: " + size + "\nMimeType: " + mimeType;
|
||||
requestedSharedFile.fileName = name;
|
||||
requestedSharedFile.open();
|
||||
}
|
||||
onRequestedSharedFileNotAvailable: {
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
spacing: 20
|
||||
|
||||
Label {
|
||||
Button {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Text to share"
|
||||
font.bold: true
|
||||
}
|
||||
TextField {
|
||||
id: sharedText
|
||||
width: parent.width
|
||||
text: "Hello Qt!"
|
||||
horizontalAlignment: TextField.AlignHCenter
|
||||
text: "Share text"
|
||||
onClicked: QtAndroidSharing.shareText("This is my shared text!")
|
||||
}
|
||||
Button {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Share"
|
||||
onClicked: QtAndroidSharing.shareText(sharedText.text)
|
||||
}
|
||||
|
||||
Label {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Share file"
|
||||
font.bold: true
|
||||
}
|
||||
Button {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Share"
|
||||
onClicked: QtAndroidSharing.shareData("image/jpeg", QtAndroidSystem.dataLocation + "/sharedfiles/logo_falsinsoft.jpg")
|
||||
text: "Share binary data"
|
||||
onClicked: QtAndroidSharing.shareBinaryData("image/jpeg", QtAndroidSystem.dataLocation + "/sharedfiles/logo_falsinsoft.jpg")
|
||||
}
|
||||
|
||||
Button {
|
||||
@ -105,13 +91,15 @@ Page {
|
||||
id: requestedSharedFile
|
||||
title: "It's ok to get this file?"
|
||||
standardButtons: StandardButton.Yes | StandardButton.No
|
||||
onNo: QtAndroidSharing.closeSharedFile()
|
||||
onNo: QtAndroidSharing.closeRequestedSharedFile()
|
||||
onYes: {
|
||||
QtAndroidTools.insertImage("SharedImage", QtAndroidSharing.getRequestedSharedFile());
|
||||
sharedImage.source = "image://QtAndroidTools/SharedImage";
|
||||
var filePath = QtAndroidSystem.dataLocation + "/sharedfiles/" + fileName;
|
||||
QtAndroidSharing.saveRequestedSharedFile(filePath);
|
||||
sharedImage.source = "file:/" + filePath;
|
||||
receivedSharedImage.quitOnClose = false;
|
||||
receivedSharedImage.open();
|
||||
}
|
||||
property string fileName
|
||||
}
|
||||
|
||||
Dialog {
|
||||
@ -131,11 +119,11 @@ Page {
|
||||
}
|
||||
|
||||
onRejected: {
|
||||
QtAndroidSharing.returnSharedFile(false);
|
||||
QtAndroidSharing.shareFile(false);
|
||||
Qt.quit();
|
||||
}
|
||||
onAccepted: {
|
||||
QtAndroidSharing.returnSharedFile(true, "image/jpeg", QtAndroidSystem.dataLocation + "/sharedfiles/logo_falsinsoft.jpg");
|
||||
QtAndroidSharing.shareFile(true, "image/jpeg", QtAndroidSystem.dataLocation + "/sharedfiles/logo_falsinsoft.jpg");
|
||||
Qt.quit();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user