From 4baf56520d61e22687b563d403f5d873251e135f Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 5 Jun 2022 17:42:09 +0100 Subject: Android: Add support for sharing debug.txt (#12370) --- android/app/src/main/AndroidManifest.xml | 13 ++++++++++++- .../java/net/minetest/minetest/GameActivity.java | 21 +++++++++++++++++++++ android/app/src/main/res/xml/filepaths.xml | 3 +++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 android/app/src/main/res/xml/filepaths.xml (limited to 'android/app/src/main') diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6ea677cb9..11c868622 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -59,6 +59,17 @@ android:name=".UnzipService" android:enabled="true" android:exported="false" /> - + + + + + + diff --git a/android/app/src/main/java/net/minetest/minetest/GameActivity.java b/android/app/src/main/java/net/minetest/minetest/GameActivity.java index eeb90ea7f..f5e9fd6d0 100644 --- a/android/app/src/main/java/net/minetest/minetest/GameActivity.java +++ b/android/app/src/main/java/net/minetest/minetest/GameActivity.java @@ -26,6 +26,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.text.InputType; +import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; @@ -36,7 +37,9 @@ import android.widget.LinearLayout; import androidx.annotation.Keep; import androidx.appcompat.app.AlertDialog; +import androidx.core.content.FileProvider; +import java.io.File; import java.util.Objects; // Native code finds these methods by name (see porting_android.cpp). @@ -183,4 +186,22 @@ public class GameActivity extends NativeActivity { public String getCachePath() { return Utils.getCacheDirectory(this).getAbsolutePath(); } + + public void shareFile(String path) { + File file = new File(path); + if (!file.exists()) { + Log.e("GameActivity", "File " + file.getAbsolutePath() + " doesn't exist"); + return; + } + + Uri fileUri = FileProvider.getUriForFile(this, "net.minetest.minetest.fileprovider", file); + + Intent intent = new Intent(Intent.ACTION_SEND, fileUri); + intent.setDataAndType(fileUri, getContentResolver().getType(fileUri)); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.putExtra(Intent.EXTRA_STREAM, fileUri); + + Intent shareIntent = Intent.createChooser(intent, null); + startActivity(shareIntent); + } } diff --git a/android/app/src/main/res/xml/filepaths.xml b/android/app/src/main/res/xml/filepaths.xml new file mode 100644 index 000000000..2fff06908 --- /dev/null +++ b/android/app/src/main/res/xml/filepaths.xml @@ -0,0 +1,3 @@ + + + -- cgit v1.2.3