MCPcopy Create free account
hub / github.com/alpha-liu-01/SpeedyNote / shareMultipleFiles

Function shareMultipleFiles

source/android/AndroidShareHelper.cpp:41–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41void shareMultipleFiles(const QStringList& filePaths, const QString& mimeType, const QString& chooserTitle)
42{
43 if (filePaths.isEmpty()) {
44 qWarning() << "AndroidShareHelper::shareMultipleFiles: Empty file list";
45 return;
46 }
47
48 QJniObject activity = QNativeInterface::QAndroidApplication::context();
49 if (!activity.isValid()) {
50 qWarning() << "AndroidShareHelper::shareMultipleFiles: Failed to get Android context";
51 return;
52 }
53
54 // Create Java String array
55 QJniEnvironment env;
56 jclass stringClass = env->FindClass("java/lang/String");
57 if (!stringClass) {
58 qWarning() << "AndroidShareHelper::shareMultipleFiles: Failed to find String class";
59 return;
60 }
61
62 jobjectArray jFilePaths = env->NewObjectArray(filePaths.size(), stringClass, nullptr);
63
64 for (int i = 0; i < filePaths.size(); ++i) {
65 jstring jPath = env->NewStringUTF(filePaths.at(i).toUtf8().constData());
66 env->SetObjectArrayElement(jFilePaths, i, jPath);
67 env->DeleteLocalRef(jPath);
68 }
69
70 // Call Java method
71 QJniObject::callStaticMethod<void>(
72 "org/speedynote/app/ShareHelper",
73 "shareMultipleFiles",
74 "(Landroid/app/Activity;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
75 activity.object<jobject>(),
76 jFilePaths,
77 QJniObject::fromString(mimeType).object<jstring>(),
78 QJniObject::fromString(chooserTitle).object<jstring>()
79 );
80
81 // Clean up JNI local references
82 env->DeleteLocalRef(jFilePaths);
83 env->DeleteLocalRef(stringClass);
84
85 if (env.checkAndClearExceptions()) {
86 qWarning() << "AndroidShareHelper::shareMultipleFiles: JNI exception occurred";
87 }
88}
89
90bool isAvailable()
91{

Callers 1

onExportJobCompleteMethod · 0.85

Calls 2

isEmptyMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected