From f2d1f7dbbb813dfe1c81734dc28b88750eef5a22 Mon Sep 17 00:00:00 2001 From: Haoyu Weng <68474038+Justweng@users.noreply.github.com> Date: Sat, 14 Dec 2024 17:45:44 +0800 Subject: [PATCH] [Enhancement] Fix #5042 Add copy link button (#5080) * Add a "copy link" button next to the share button. Add relative English and Simplified Chinese text in strings.xml. * Change the icon from copy to link * Fixed typo * Fixed case --------- Co-authored-by: Justweng Co-authored-by: Nicolas Raoul --- .../nrw/commons/media/MediaDetailPagerFragment.java | 13 +++++++++++++ .../main/res/drawable/menu_ic_copy_link_24dp.xml | 7 +++++++ app/src/main/res/menu/fragment_image_detail.xml | 5 +++++ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 29 insertions(+) create mode 100644 app/src/main/res/drawable/menu_ic_copy_link_24dp.xml diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index 8f52b1ced..0de29a3bf 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -31,6 +31,7 @@ import com.google.android.material.snackbar.Snackbar; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.auth.SessionManager; import fr.free.nrw.commons.bookmarks.models.Bookmark; import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesContentProvider; @@ -211,6 +212,13 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple snackbar.show(); updateBookmarkState(item); return true; + case R.id.menu_copy_link: + String uri = m.getPageTitle().getCanonicalUri(); + Utils.copy("shareLink", uri, requireContext()); + Timber.d("Copied share link to clipboard: %s", uri); + Toast.makeText(requireContext(), getString(R.string.menu_link_copied), + Toast.LENGTH_SHORT).show(); + return true; case R.id.menu_share_current_image: Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); @@ -390,6 +398,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple if (m != null) { // Enable default set of actions, then re-enable different set of actions only if it is a failed contrib menu.findItem(R.id.menu_browser_current_image).setEnabled(true).setVisible(true); + menu.findItem(R.id.menu_copy_link).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_bookmark_current_image).setEnabled(true).setVisible(true); @@ -423,6 +432,8 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple case Contribution.STATE_QUEUED: menu.findItem(R.id.menu_browser_current_image).setEnabled(false) .setVisible(false); + menu.findItem(R.id.menu_copy_link).setEnabled(false) + .setVisible(false); menu.findItem(R.id.menu_share_current_image).setEnabled(false) .setVisible(false); menu.findItem(R.id.menu_download_current_image).setEnabled(false) @@ -440,6 +451,8 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple } else { menu.findItem(R.id.menu_browser_current_image).setEnabled(false) .setVisible(false); + menu.findItem(R.id.menu_copy_link).setEnabled(false) + .setVisible(false); menu.findItem(R.id.menu_share_current_image).setEnabled(false) .setVisible(false); menu.findItem(R.id.menu_download_current_image).setEnabled(false) diff --git a/app/src/main/res/drawable/menu_ic_copy_link_24dp.xml b/app/src/main/res/drawable/menu_ic_copy_link_24dp.xml new file mode 100644 index 000000000..ab6cb4a96 --- /dev/null +++ b/app/src/main/res/drawable/menu_ic_copy_link_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/menu/fragment_image_detail.xml b/app/src/main/res/menu/fragment_image_detail.xml index 7ab77b686..b4239ef9d 100644 --- a/app/src/main/res/menu/fragment_image_detail.xml +++ b/app/src/main/res/menu/fragment_image_detail.xml @@ -7,6 +7,11 @@ android:icon="@drawable/menu_ic_round_star_border_24px" android:title="@string/menu_bookmark" app:showAsAction="always" /> + 从图库 拍照 我的上传 + 复制链接 + 链接已复制到剪贴板 分享 在浏览器中查看 标题 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6b5829359..4bf76c405 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,6 +99,8 @@ Take photo Nearby My uploads + Copy link + The link has been copied to the clipboard Share View file page Caption (Required)