diff --git a/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java b/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java index e654cc1ca..52869b083 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java +++ b/app/src/main/java/com/topjohnwu/magisk/ModulesFragment.java @@ -1,5 +1,6 @@ package com.topjohnwu.magisk; +import android.Manifest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; @@ -17,6 +18,7 @@ import com.topjohnwu.magisk.components.Fragment; import com.topjohnwu.magisk.container.Module; import com.topjohnwu.magisk.utils.Logger; import com.topjohnwu.magisk.utils.Topic; +import com.topjohnwu.magisk.utils.Utils; import java.util.ArrayList; import java.util.List; @@ -36,9 +38,11 @@ public class ModulesFragment extends Fragment implements Topic.Subscriber { @BindView(R.id.empty_rv) TextView emptyRv; @OnClick(R.id.fab) public void selectFile() { - Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.setType("application/zip"); - startActivityForResult(intent, FETCH_ZIP_CODE); + Utils.runWithPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE, () -> { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("application/zip"); + startActivityForResult(intent, FETCH_ZIP_CODE); + }); } private List listModules = new ArrayList<>(); diff --git a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java index 400e7691b..485379261 100644 --- a/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java +++ b/app/src/main/java/com/topjohnwu/magisk/asyncs/ProcessRepoZip.java @@ -45,7 +45,6 @@ public class ProcessRepoZip extends ParallelTask { super(context); mLink = link; mFile = new File(Environment.getExternalStorageDirectory() + "/MagiskManager", filename); - mFile.getParentFile().mkdirs(); mInstall = install; } @@ -80,6 +79,7 @@ public class ProcessRepoZip extends ParallelTask { @Override protected void onPreExecute() { Activity activity = getActivity(); + mFile.getParentFile().mkdirs(); progressDialog = ProgressDialog.show(activity, activity.getString(R.string.zip_download_title), activity.getString(R.string.zip_download_msg, 0)); }