11package com.simplemobiletools.filemanager.adapters
22
3+ import android.content.ClipData
4+ import android.content.ClipboardManager
5+ import android.content.Context
36import android.graphics.drawable.Drawable
47import android.net.Uri
58import android.os.Build
@@ -107,6 +110,7 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
107110 R .id.cab_rename -> displayRenameDialog()
108111 R .id.cab_properties -> showProperties()
109112 R .id.cab_share -> shareFiles()
113+ R .id.cab_copy_path -> copyPath()
110114 R .id.cab_copy_to -> copyMoveTo(true )
111115 R .id.cab_move_to -> copyMoveTo(false )
112116 R .id.cab_compress -> compressSelection()
@@ -129,6 +133,7 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
129133 menu.findItem(R .id.cab_rename).isVisible = selectedPositions.size <= 1
130134 menu.findItem(R .id.cab_decompress).isVisible = getSelectedMedia().map { it.path }.any { it.isZipFile() }
131135 menu.findItem(R .id.cab_confirm_selection).isVisible = isPickMultipleIntent
136+ menu.findItem(R .id.cab_copy_path).isVisible = selectedPositions.size <= 1
132137 return true
133138 }
134139
@@ -185,6 +190,14 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
185190 }
186191 }
187192
193+ private fun copyPath () {
194+ val path = getSelectedMedia().first().path
195+ val clip = ClipData .newPlainText(activity.getString(R .string.app_name), path)
196+ (activity.getSystemService(Context .CLIPBOARD_SERVICE ) as ClipboardManager ).primaryClip = clip
197+ actMode?.finish()
198+ activity.toast(R .string.path_copied)
199+ }
200+
188201 private fun copyMoveTo (isCopyOperation : Boolean ) {
189202 val files = ArrayList <File >()
190203 selectedPositions.forEach { files.add(File (mItems[it].path)) }
0 commit comments