@@ -27,10 +27,7 @@ import com.simplemobiletools.filemanager.BuildConfig
2727import com.simplemobiletools.filemanager.R
2828import com.simplemobiletools.filemanager.activities.SimpleActivity
2929import com.simplemobiletools.filemanager.dialogs.CompressAsDialog
30- import com.simplemobiletools.filemanager.extensions.config
31- import com.simplemobiletools.filemanager.extensions.isPathOnRoot
32- import com.simplemobiletools.filemanager.extensions.isZipFile
33- import com.simplemobiletools.filemanager.extensions.shareUris
30+ import com.simplemobiletools.filemanager.extensions.*
3431import com.stericson.RootTools.RootTools
3532import kotlinx.android.synthetic.main.list_item.view.*
3633import java.io.Closeable
@@ -111,6 +108,8 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
111108 R .id.cab_properties -> showProperties()
112109 R .id.cab_share -> shareFiles()
113110 R .id.cab_copy_path -> copyPath()
111+ R .id.cab_set_as -> setAs()
112+ R .id.cab_open_with -> openWith()
114113 R .id.cab_copy_to -> copyMoveTo(true )
115114 R .id.cab_move_to -> copyMoveTo(false )
116115 R .id.cab_compress -> compressSelection()
@@ -130,10 +129,14 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
130129 }
131130
132131 override fun onPrepareActionMode (actionMode : ActionMode ? , menu : Menu ): Boolean {
133- menu.findItem(R .id.cab_rename).isVisible = selectedPositions.size <= 1
134- menu.findItem(R .id.cab_decompress).isVisible = getSelectedMedia().map { it.path }.any { it.isZipFile() }
135- menu.findItem(R .id.cab_confirm_selection).isVisible = isPickMultipleIntent
136- menu.findItem(R .id.cab_copy_path).isVisible = selectedPositions.size <= 1
132+ menu.apply {
133+ findItem(R .id.cab_rename).isVisible = isOneItemSelected()
134+ findItem(R .id.cab_decompress).isVisible = getSelectedMedia().map { it.path }.any { it.isZipFile() }
135+ findItem(R .id.cab_confirm_selection).isVisible = isPickMultipleIntent
136+ findItem(R .id.cab_copy_path).isVisible = isOneItemSelected()
137+ findItem(R .id.cab_open_with).isVisible = isOneFileSelected()
138+ findItem(R .id.cab_set_as).isVisible = isOneFileSelected()
139+ }
137140 return true
138141 }
139142
@@ -145,6 +148,10 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
145148 selectedPositions.clear()
146149 actMode = null
147150 }
151+
152+ private fun isOneItemSelected () = selectedPositions.size == 1
153+
154+ private fun isOneFileSelected () = isOneItemSelected() && ! mItems[selectedPositions.first()].isDirectory
148155 }
149156
150157 private fun confirmSelection () {
@@ -198,6 +205,16 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
198205 activity.toast(R .string.path_copied)
199206 }
200207
208+ private fun setAs () {
209+ val file = File (getSelectedMedia().first().path)
210+ activity.setAs(Uri .fromFile(file))
211+ }
212+
213+ private fun openWith () {
214+ val file = File (getSelectedMedia().first().path)
215+ activity.openFile(Uri .fromFile(file), true )
216+ }
217+
201218 private fun copyMoveTo (isCopyOperation : Boolean ) {
202219 val files = ArrayList <File >()
203220 selectedPositions.forEach { files.add(File (mItems[it].path)) }
0 commit comments