Skip to content

Commit 0605b85

Browse files
committed
fix opening .apk files, treat them specially
1 parent a6f82c4 commit 0605b85

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
165165

166166
private fun openWith() {
167167
val file = File(getSelectedMedia().first().path)
168-
activity.openFile(Uri.fromFile(file), true)
168+
activity.openFile(file, true)
169169
}
170170

171171
private fun copyMoveTo(isCopyOperation: Boolean) {

app/src/main/kotlin/com/simplemobiletools/filemanager/extensions/Activity.kt

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,37 @@
11
package com.simplemobiletools.filemanager.extensions
22

33
import android.app.Activity
4+
import android.content.Intent
45
import android.net.Uri
5-
import com.simplemobiletools.commons.extensions.openFile
6-
import com.simplemobiletools.commons.extensions.setAs
7-
import com.simplemobiletools.commons.extensions.shareUris
6+
import android.support.v4.content.FileProvider
7+
import com.simplemobiletools.commons.extensions.*
88
import com.simplemobiletools.filemanager.BuildConfig
9+
import java.io.File
910
import java.util.*
1011

1112
fun Activity.shareUris(uris: ArrayList<Uri>) {
1213
shareUris(uris, BuildConfig.APPLICATION_ID)
1314
}
1415

16+
fun Activity.openFile(file: File, forceChooser: Boolean) {
17+
if (!forceChooser && file.absolutePath.endsWith(".apk", true)) {
18+
val uri = if (isNougatPlus()) {
19+
FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", file)
20+
} else {
21+
Uri.fromFile(file)
22+
}
23+
24+
Intent().apply {
25+
action = Intent.ACTION_VIEW
26+
setDataAndType(uri, getMimeTypeFromUri(uri))
27+
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
28+
startActivity(this)
29+
}
30+
} else {
31+
openFile(Uri.fromFile(file), forceChooser)
32+
}
33+
}
34+
1535
fun Activity.openFile(uri: Uri, forceChooser: Boolean) {
1636
openFile(uri, forceChooser, BuildConfig.APPLICATION_ID)
1737
}

app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.simplemobiletools.filemanager.fragments
22

3-
import android.net.Uri
43
import android.os.Bundle
54
import android.os.Parcelable
65
import android.support.v4.app.Fragment
@@ -220,7 +219,7 @@ class ItemsFragment : Fragment(), ItemsAdapter.ItemOperationsListener, Breadcrum
220219
}
221220
} else {
222221
val file = File(path)
223-
activity!!.openFile(Uri.fromFile(file), false)
222+
activity!!.openFile(file, false)
224223
}
225224
}
226225
}

0 commit comments

Comments
 (0)