Skip to content

Commit 832f1e4

Browse files
authored
Add shareFile (#111)
1 parent bf155f5 commit 832f1e4

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

src/jni/jni_descriptors.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ BEGIN_NATIVE_DESCRIPTOR(MainActivity){Constructor<MainActivity>{}},
123123
{Function<&MainActivity::requestIntegrityToken>{}, "requestIntegrityToken"},
124124
{Function<&MainActivity::launchUri>{}, "launchUri"},
125125
{Function<&MainActivity::share>{}, "share"},
126+
{Function<&MainActivity::shareFile>{}, "shareFile"},
126127
{Function<&MainActivity::openFile>{}, "openFile"},
127128
{Function<&MainActivity::saveFile>{}, "saveFile"},
128129
{Function<&MainActivity::setClipboard>{}, "setClipboard"},

src/jni/main_activity.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "uuid.h"
1818
#include <climits>
1919
#include <sstream>
20+
#include <fstream>
2021
#include <android/keycodes.h>
2122
#include "../core_patches.h"
2223

@@ -207,6 +208,21 @@ void MainActivity::share(std::shared_ptr<FakeJni::JString> title, std::shared_pt
207208
}
208209
}
209210

211+
void MainActivity::shareFile(std::shared_ptr<FakeJni::JString> title, std::shared_ptr<FakeJni::JString> string, std::shared_ptr<FakeJni::JString> path) {
212+
auto picker = FilePickerFactory::createFilePicker();
213+
picker->setMode(FilePicker::Mode::SAVE);
214+
picker->setTitle(title->asStdString());
215+
std::string pathStr = path->asStdString();
216+
picker->setFileName(pathStr.substr(pathStr.find_last_of("/\\") + 1));
217+
if(picker->show()) {
218+
std::ifstream src(pathStr, std::ios::binary);
219+
std::ofstream dst(picker->getPickedFile(), std::ios::binary);
220+
dst << src.rdbuf();
221+
src.close();
222+
dst.close();
223+
}
224+
}
225+
210226
FakeJni::JInt MainActivity::getCaretPosition() {
211227
ignoreNextHideKeyboard = false;
212228
if(textInput) {
@@ -372,7 +388,7 @@ void MainActivity::setLastChar(FakeJni::JInt sym) {
372388
}
373389

374390
void MainActivity::lockCursor() {
375-
CorePatches::hideMousePointer();
391+
CorePatches::hideMousePointer();
376392
}
377393

378394
void MainActivity::unlockCursor() {

src/jni/main_activity.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ class MainActivity : public NativeActivity {
209209

210210
void launchUri(std::shared_ptr<FakeJni::JString>);
211211
void share(std::shared_ptr<FakeJni::JString>, std::shared_ptr<FakeJni::JString>, std::shared_ptr<FakeJni::JString>);
212+
void shareFile(std::shared_ptr<FakeJni::JString>, std::shared_ptr<FakeJni::JString>, std::shared_ptr<FakeJni::JString>);
212213
std::shared_ptr<FakeJni::JArray<FakeJni::JString>> getBroadcastAddresses() {
213214
return std::make_shared<FakeJni::JArray<FakeJni::JString>>();
214215
}

0 commit comments

Comments
 (0)