diff --git a/android/app/src/main/kotlin/im/cwtch/flwtch/MainActivity.kt b/android/app/src/main/kotlin/im/cwtch/flwtch/MainActivity.kt index 5ae7408b..d0f6503d 100644 --- a/android/app/src/main/kotlin/im/cwtch/flwtch/MainActivity.kt +++ b/android/app/src/main/kotlin/im/cwtch/flwtch/MainActivity.kt @@ -56,6 +56,7 @@ class MainActivity: FlutterActivity() { private var shutdownClickChannel: MethodChannel? = null // "Download to..." prompt extra arguments + private val FILEPICKER_REQUEST_CODE = 234 private var dlToProfile = "" private var dlToHandle = "" private var dlToFileKey = "" @@ -84,20 +85,24 @@ class MainActivity: FlutterActivity() { // handles return values from the system file picker override fun onActivityResult(requestCode: Int, result: Int, intent: Intent?) { + super.onActivityResult(requestCode, result, intent); + if (intent == null || intent!!.getData() == null) { Log.i("MainActivity:onActivityResult", "user canceled activity"); return; } - val filePath = intent!!.getData().toString(); - val manifestPath = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(this.dlToFileKey).toString(); - handleCwtch(MethodCall("DownloadFile", mapOf( - "ProfileOnion" to this.dlToProfile, - "handle" to this.dlToHandle, - "filepath" to filePath, - "manifestpath" to manifestPath, - "filekey" to this.dlToFileKey - )), ErrorLogResult(""));//placeholder; this Result is never actually invoked + if (requestCode == FILEPICKER_REQUEST_CODE) { + val filePath = intent!!.getData().toString(); + val manifestPath = StringBuilder().append(this.applicationContext.cacheDir).append("/").append(this.dlToFileKey).toString(); + handleCwtch(MethodCall("DownloadFile", mapOf( + "ProfileOnion" to this.dlToProfile, + "handle" to this.dlToHandle, + "filepath" to filePath, + "manifestpath" to manifestPath, + "filekey" to this.dlToFileKey + )), ErrorLogResult(""));//placeholder; this Result is never actually invoked + } } override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { @@ -167,7 +172,7 @@ class MainActivity: FlutterActivity() { type = "application/octet-stream" putExtra(Intent.EXTRA_TITLE, suggestedName) } - startActivityForResult(intent, 1) + startActivityForResult(intent, FILEPICKER_REQUEST_CODE) return } diff --git a/lib/views/messageview.dart b/lib/views/messageview.dart index ea84f169..0c9ce028 100644 --- a/lib/views/messageview.dart +++ b/lib/views/messageview.dart @@ -81,9 +81,10 @@ class _MessageViewState extends State { return Card(child: Center(child: Text(AppLocalizations.of(context)!.addContactFirst))); } + var showFileSharing = Provider.of(context).isExperimentEnabled(FileSharingExperiment); var appBarButtons = []; if (Provider.of(context).isOnline()) { - if (Platform.isAndroid == false) { + if (showFileSharing) { appBarButtons.add(IconButton( icon: Icon(Icons.attach_file, size: 24), tooltip: AppLocalizations.of(context)!.tooltipSendFile, diff --git a/pubspec.lock b/pubspec.lock index ca0185ec..41cdef38 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,7 +21,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -195,7 +195,7 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: transitive description: @@ -403,7 +403,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.3" typed_data: dependency: transitive description: