From b9dbfc99d6663bc0a803cfeca19bbed40682b284 Mon Sep 17 00:00:00 2001 From: NekoInverter <42698724+NekoInverter@users.noreply.github.com> Date: Thu, 26 Mar 2020 12:54:54 +0800 Subject: [PATCH] Fix export and import --- .../com/hippo/ehviewer/ui/fragment/AdvancedFragment.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java index b6399ad8f..7fc9fbd06 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java @@ -30,6 +30,7 @@ import androidx.preference.PreferenceGroup; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.hippo.ehviewer.AppConfig; +import com.hippo.ehviewer.BuildConfig; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.EhDB; import com.hippo.ehviewer.GetText; @@ -106,6 +107,7 @@ public class AdvancedFragment extends PreferenceFragmentCompat Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("text/plain"); + intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.putExtra(Intent.EXTRA_TITLE, "logcat-" + ReadableTime.getFilenamableTime(System.currentTimeMillis()) + ".txt"); startActivityForResult(intent, REQUEST_DUMP_LOGCAT); return true; @@ -115,13 +117,15 @@ public class AdvancedFragment extends PreferenceFragmentCompat } else if (KEY_IMPORT_DATA.equals(key)) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); - intent.setType("application/x-sqlite3"); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setType("*/*"); startActivityForResult(intent, REQUEST_CODE_IMPORT); return true; } else if (KEY_EXPORT_DATA.equals(key)) { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("application/x-sqlite3"); + intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.putExtra(Intent.EXTRA_TITLE, ReadableTime.getFilenamableTime(System.currentTimeMillis()) + ".db"); startActivityForResult(intent, REQUEST_CODE_EXPORT); return true; @@ -138,6 +142,7 @@ public class AdvancedFragment extends PreferenceFragmentCompat if (data != null) { Uri uri = data.getData(); if (uri != null) { + requireActivity().grantUriPermission(BuildConfig.APPLICATION_ID, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION); try { AlertDialog alertDialog = new MaterialAlertDialogBuilder(requireActivity()) .setCancelable(false) @@ -165,6 +170,7 @@ public class AdvancedFragment extends PreferenceFragmentCompat if (data != null) { Uri uri = data.getData(); if (uri != null) { + requireActivity().grantUriPermission(BuildConfig.APPLICATION_ID, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); try { AlertDialog alertDialog = new MaterialAlertDialogBuilder(requireActivity()) .setCancelable(false) @@ -192,6 +198,7 @@ public class AdvancedFragment extends PreferenceFragmentCompat if (data != null) { Uri uri = data.getData(); if (uri != null) { + requireActivity().grantUriPermission(BuildConfig.APPLICATION_ID, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION); try { boolean ok = LogCat.save(requireActivity().getContentResolver().openOutputStream(uri)); Toast.makeText(getActivity(),