|
@@ -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);
|
|
|
+ }
|
|
|
}
|