]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - android/app/src/main/java/net/minetest/minetest/GameActivity.java
Android: Add support for sharing debug.txt (#12370)
[dragonfireclient.git] / android / app / src / main / java / net / minetest / minetest / GameActivity.java
index eeb90ea7f7e59ebbe59e0a181e1ad578668c0799..f5e9fd6d08a303c653e9fd661f9d609ccc60e0e8 100644 (file)
@@ -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);
+       }
 }