diff --git a/app/src/main/java/com/topjohnwu/magisk/model/download/SubstrateDownloadService.kt b/app/src/main/java/com/topjohnwu/magisk/model/download/SubstrateDownloadService.kt index 66406da70..0ff327f2c 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/download/SubstrateDownloadService.kt +++ b/app/src/main/java/com/topjohnwu/magisk/model/download/SubstrateDownloadService.kt @@ -8,13 +8,13 @@ import android.webkit.MimeTypeMap import android.widget.Toast import androidx.core.app.NotificationCompat import androidx.core.content.getSystemService -import androidx.core.net.toUri import com.skoumal.teanity.extensions.subscribeK import com.topjohnwu.magisk.Config import com.topjohnwu.magisk.Const import com.topjohnwu.magisk.R import com.topjohnwu.magisk.data.repository.FileRepository import com.topjohnwu.magisk.model.entity.internal.DownloadSubject +import com.topjohnwu.magisk.utils.provide import com.topjohnwu.magisk.utils.toast import com.topjohnwu.magisk.utils.writeToCachedFile import com.topjohnwu.magisk.view.Notifications @@ -87,7 +87,8 @@ abstract class SubstrateDownloadService : Service() { protected fun fileIntent(fileName: String): Intent { val file = downloadsFile(fileName) return Intent(Intent.ACTION_VIEW) - .setDataAndType(file.toUri(), file.type) + .setDataAndType(file.provide(this), file.type) + .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } protected fun moveToDownloads(file: File) { diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/XAndroid.kt b/app/src/main/java/com/topjohnwu/magisk/utils/XAndroid.kt index b3c7ba5a2..66c959155 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/XAndroid.kt +++ b/app/src/main/java/com/topjohnwu/magisk/utils/XAndroid.kt @@ -91,9 +91,8 @@ fun ApplicationInfo.findAppLabel(pm: PackageManager): String { fun Intent.startActivity(context: Context) = context.startActivity(this) -fun File.provide(): Uri { - val context: Context by inject() - return FileProvider.getUriForFile(context, "com.topjohnwu.magisk.fileprovider", this) +fun File.provide(context: Context = get()): Uri { + return FileProvider.getUriForFile(context, context.packageName + ".provider", this) } fun File.mv(destination: File) {