diff --git a/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt
index fda8b9f00..f12be5af1 100644
--- a/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt
+++ b/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt
@@ -5,6 +5,8 @@ import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.app.Activity
import android.content.ActivityNotFoundException
+import android.content.ClipData
+import android.content.ClipboardManager
import android.content.Intent
import android.content.pm.ActivityInfo
import android.content.pm.ShortcutInfo
@@ -171,6 +173,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
findItem(R.id.menu_rename).isVisible = visibleBottomActions and BOTTOM_ACTION_RENAME == 0 && !currentMedium.getIsInRecycleBin()
findItem(R.id.menu_rotate).isVisible = currentMedium.isImage() && visibleBottomActions and BOTTOM_ACTION_ROTATE == 0
findItem(R.id.menu_set_as).isVisible = visibleBottomActions and BOTTOM_ACTION_SET_AS == 0
+ findItem(R.id.menu_copy_to_clipboard).isVisible = true
findItem(R.id.menu_copy_to).isVisible = visibleBottomActions and BOTTOM_ACTION_COPY == 0
findItem(R.id.menu_move_to).isVisible = visibleBottomActions and BOTTOM_ACTION_MOVE == 0
findItem(R.id.menu_save_as).isVisible = rotationDegrees != 0
@@ -249,6 +252,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
R.id.menu_create_shortcut -> createShortcut()
R.id.menu_resize -> resizeImage()
R.id.menu_settings -> launchSettings()
+ R.id.menu_copy_to_clipboard -> copyImageToClipboard()
else -> return@setOnMenuItemClickListener false
}
return@setOnMenuItemClickListener true
@@ -1039,6 +1043,14 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
launchResizeImageDialog(oldPath)
}
+ private fun copyImageToClipboard() {
+ val clipboard = getSystemService(ClipboardManager::class.java) as ClipboardManager
+
+ val imagePath = getCurrentMedium()?.path ?: return
+ val clip = ClipData.newUri(contentResolver, "Image", getFinalUriFromPath(imagePath, BuildConfig.APPLICATION_ID))
+ clipboard.setPrimaryClip(clip)
+ }
+
private fun checkDeleteConfirmation() {
if (getCurrentMedium() == null) {
return
diff --git a/app/src/main/res/menu/menu_viewpager.xml b/app/src/main/res/menu/menu_viewpager.xml
index d2118c4bf..80fb9b25c 100644
--- a/app/src/main/res/menu/menu_viewpager.xml
+++ b/app/src/main/res/menu/menu_viewpager.xml
@@ -56,6 +56,11 @@
android:icon="@drawable/ic_unhide_vector"
android:title="@string/unhide"
app:showAsAction="ifRoom" />
+