Skip to content

Commit b67a9e5

Browse files
committed
use more advanced mimetype and action checking at sharing files
1 parent b27c9bb commit b67a9e5

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ android {
3232
}
3333

3434
dependencies {
35-
compile 'com.simplemobiletools:commons:2.21.7'
35+
compile 'com.simplemobiletools:commons:2.21.10'
3636
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
3737
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
3838
}

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

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ import com.simplemobiletools.commons.dialogs.ConfirmationDialog
1515
import com.simplemobiletools.commons.dialogs.FilePickerDialog
1616
import com.simplemobiletools.commons.dialogs.PropertiesDialog
1717
import com.simplemobiletools.commons.dialogs.RenameItemDialog
18-
import com.simplemobiletools.commons.extensions.formatSize
19-
import com.simplemobiletools.commons.extensions.getCacheStrategy
20-
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
21-
import com.simplemobiletools.commons.extensions.toast
18+
import com.simplemobiletools.commons.extensions.*
2219
import com.simplemobiletools.commons.models.FileDirItem
2320
import com.simplemobiletools.filemanager.R
2421
import com.simplemobiletools.filemanager.activities.SimpleActivity
@@ -27,6 +24,7 @@ import kotlinx.android.synthetic.main.list_item.view.*
2724
import java.io.File
2825
import java.util.*
2926

27+
3028
class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDirItem>, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) :
3129
RecyclerView.Adapter<ItemsAdapter.ViewHolder>() {
3230

@@ -147,13 +145,26 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
147145

148146
val shareTitle = activity.resources.getString(R.string.share_via)
149147
Intent().apply {
150-
action = Intent.ACTION_SEND_MULTIPLE
148+
action = if (uris.size <= 1) Intent.ACTION_SEND else Intent.ACTION_SEND_MULTIPLE
151149
putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris)
152-
type = "*/*"
150+
type = getMimeType(selectedItems)
153151
activity.startActivity(Intent.createChooser(this, shareTitle))
154152
}
155153
}
156154

155+
private fun getMimeType(items: List<FileDirItem>): String {
156+
val firstMimeType = items.first().path.getMimeTypeFromPath()
157+
val firstMimeGroup = firstMimeType.substringBefore("/")
158+
159+
items.forEach {
160+
val mimeGroup = it.path.getMimeTypeFromPath().substringBefore("/")
161+
if (mimeGroup != firstMimeGroup) {
162+
return "*/*"
163+
}
164+
}
165+
return firstMimeType
166+
}
167+
157168
private fun copyMoveTo(isCopyOperation: Boolean) {
158169
val files = ArrayList<File>()
159170
selectedPositions.forEach { files.add(File(mItems[it].path)) }

0 commit comments

Comments
 (0)