From f4f2a2ccbb0b34aaf1b17de127ebf794bbd96f03 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 17 Feb 2018 11:24:29 +0100 Subject: [PATCH] update commons to 3.12.3 --- app/build.gradle | 2 +- .../filemanager/activities/MainActivity.kt | 10 +++---- .../activities/ReadTextActivity.kt | 6 ++-- .../filemanager/adapters/ItemsAdapter.kt | 29 ++++++++++--------- .../filemanager/extensions/Activity.kt | 28 +++++++----------- .../filemanager/fragments/ItemsFragment.kt | 5 ++-- 6 files changed, 37 insertions(+), 43 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2762d3bf..e7c537d0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,7 +45,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.11.52' + implementation 'com.simplemobiletools:commons:3.12.3' implementation files('../libs/RootTools.jar') diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt index 041fc477..91d0086c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt @@ -300,7 +300,7 @@ class MainActivity : SimpleActivity() { fun pickedPath(path: String) { val resultIntent = Intent() val uri = getFilePublicUri(File(path), BuildConfig.APPLICATION_ID) - val type = path.getMimeTypeFromPath() + val type = path.getMimeType() resultIntent.setDataAndType(uri, type) resultIntent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION setResult(Activity.RESULT_OK, resultIntent) @@ -310,7 +310,7 @@ class MainActivity : SimpleActivity() { fun pickedRingtone(path: String) { val resultIntent = Intent() val uri = getFilePublicUri(File(path), BuildConfig.APPLICATION_ID) - val type = path.getMimeTypeFromPath() + val type = path.getMimeType() resultIntent.setDataAndType(uri, type) resultIntent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION resultIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI, uri) @@ -319,10 +319,10 @@ class MainActivity : SimpleActivity() { } fun pickedPaths(paths: ArrayList) { - val uris = paths.map { getFilePublicUri(File(it), BuildConfig.APPLICATION_ID) } as ArrayList - val clipData = ClipData("Attachment", arrayOf(uris.getMimeType()), ClipData.Item(uris.removeAt(0))) + val newPaths = paths.map { getFilePublicUri(File(it), BuildConfig.APPLICATION_ID).toString() } as ArrayList + val clipData = ClipData("Attachment", arrayOf(newPaths.getMimeType()), ClipData.Item(newPaths.removeAt(0))) - uris.forEach { + newPaths.forEach { clipData.addItem(ClipData.Item(it)) } diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/ReadTextActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/ReadTextActivity.kt index 49a535a1..5cf3c8ad 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/ReadTextActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/activities/ReadTextActivity.kt @@ -9,12 +9,12 @@ import com.simplemobiletools.commons.models.FileDirItem import com.simplemobiletools.filemanager.R import com.simplemobiletools.filemanager.dialogs.SaveAsDialog import com.simplemobiletools.filemanager.extensions.config -import com.simplemobiletools.filemanager.extensions.openFile +import com.simplemobiletools.filemanager.extensions.openPath import kotlinx.android.synthetic.main.activity_read_text.* import java.io.File class ReadTextActivity : SimpleActivity() { - var filePath = "" + private var filePath = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -39,7 +39,7 @@ class ReadTextActivity : SimpleActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.menu_save -> saveText() - R.id.menu_open_with -> openFile(intent.data, true) + R.id.menu_open_with -> openPath(intent.dataString, true) else -> return super.onOptionsItemSelected(item) } return true diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt index 7eeeefcf..07164dd3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt @@ -5,7 +5,6 @@ import android.content.ClipboardManager import android.content.Context import android.content.pm.PackageManager import android.graphics.drawable.Drawable -import android.net.Uri import android.view.Menu import android.view.View import android.view.ViewGroup @@ -142,21 +141,27 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList(selectedItems.size) + val paths = ArrayList(selectedItems.size) selectedItems.forEach { - addFileUris(File(it.path), uris) + addFileUris(it.path, paths) } - activity.shareUris(uris) + activity.sharePaths(paths) } - private fun addFileUris(file: File, uris: ArrayList) { - if (file.isDirectory) { + private fun addFileUris(path: String, paths: ArrayList) { + if (activity.getIsPathDirectory(path)) { val shouldShowHidden = activity.config.shouldShowHidden - file.listFiles()?.filter { if (shouldShowHidden) true else !it.isHidden }?.forEach { - addFileUris(it, uris) + if (activity.isPathOnOTG(path)) { + activity.getDocumentFile(path)?.listFiles()?.filter { if (shouldShowHidden) true else !it.name.startsWith(".") }?.forEach { + addFileUris(it.uri.toString(), paths) + } + } else { + File(path).listFiles()?.filter { if (shouldShowHidden) true else !it.isHidden }?.forEach { + addFileUris(it.absolutePath, paths) + } } } else { - uris.add(Uri.fromFile(file)) + paths.add(path) } } @@ -169,13 +174,11 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList) { - shareUris(uris, BuildConfig.APPLICATION_ID) +fun Activity.sharePaths(paths: ArrayList) { + sharePathsIntent(paths, BuildConfig.APPLICATION_ID) } -fun Activity.openFile(file: File, forceChooser: Boolean) { - if (!forceChooser && file.absolutePath.endsWith(".apk", true)) { - val uri = if (isNougatPlus()) { - FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", file) - } else { - Uri.fromFile(file) - } - +fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean) { + if (!forceChooser && path.endsWith(".apk", true)) { + val uri = getFinalUriFromPath(path, BuildConfig.APPLICATION_ID) ?: return Intent().apply { action = Intent.ACTION_VIEW setDataAndType(uri, getMimeTypeFromUri(uri)) @@ -28,14 +20,14 @@ fun Activity.openFile(file: File, forceChooser: Boolean) { startActivity(this) } } else { - openFile(Uri.fromFile(file), forceChooser) + openPath(path, forceChooser) } } -fun Activity.openFile(uri: Uri, forceChooser: Boolean) { - openFile(uri, forceChooser, BuildConfig.APPLICATION_ID) +fun Activity.openPath(path: String, forceChooser: Boolean) { + openPathIntent(path, forceChooser, BuildConfig.APPLICATION_ID) } -fun Activity.setAs(uri: Uri) { - setAs(uri, BuildConfig.APPLICATION_ID) +fun Activity.setAs(path: String) { + setAsIntent(path, BuildConfig.APPLICATION_ID) } diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt index 6ae32c77..cec1b32c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt @@ -21,7 +21,7 @@ import com.simplemobiletools.filemanager.adapters.ItemsAdapter import com.simplemobiletools.filemanager.dialogs.CreateNewItemDialog import com.simplemobiletools.filemanager.extensions.config import com.simplemobiletools.filemanager.extensions.isPathOnRoot -import com.simplemobiletools.filemanager.extensions.openFile +import com.simplemobiletools.filemanager.extensions.tryOpenPathIntent import com.simplemobiletools.filemanager.helpers.PATH import com.simplemobiletools.filemanager.helpers.RootHelpers import com.simplemobiletools.filemanager.interfaces.ItemOperationsListener @@ -227,8 +227,7 @@ class ItemsFragment : Fragment(), ItemOperationsListener, Breadcrumbs.Breadcrumb activity?.toast(R.string.select_audio_file) } } else { - val file = File(path) - activity!!.openFile(file, false) + activity!!.tryOpenPathIntent(path, false) } } }