diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index b1c70436f..c0b375be8 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -107,6 +107,7 @@ import com.hippo.scene.TransitionHelper; import com.hippo.text.Html; import com.hippo.text.URLImageGetter; import com.hippo.util.AppHelper; +import com.hippo.util.ClipboardUtil; import com.hippo.util.ExceptionUtils; import com.hippo.util.ReadableTime; import com.hippo.view.ViewTransition; @@ -1427,7 +1428,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene .show(); } - private void showTagDialog(final String tag) { + private void showTagDialog(TextView tv, final String tag) { final Context context = getContext(); if (null == context) { return; @@ -1445,6 +1446,12 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene final IntList menuId = new IntList(); Resources resources = context.getResources(); + menu.add(resources.getString(android.R.string.copy)); + menuId.add(R.id.copy); + if (!tag.equals(tv.getText().toString())) { + menu.add(resources.getString(R.string.copy_trans)); + menuId.add(R.id.copy_trans); + } menu.add(resources.getString(R.string.show_definition)); menuId.add(R.id.show_definition); menu.add(resources.getString(R.string.add_filter)); @@ -1471,6 +1478,12 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene UrlOpener.openUrl(context, EhUrl.getTagDefinitionUrl(tag2), false); } else if (id == R.id.add_filter) { showFilterTagDialog(tag); + } else if (id == R.id.copy) { + ClipboardUtil.addTextToClipboard(tag); + showTip(R.string.copied_to_clipboard, LENGTH_SHORT); + } else if (id == R.id.copy_trans) { + ClipboardUtil.addTextToClipboard(tv.getText().toString()); + showTip(R.string.copied_to_clipboard, LENGTH_SHORT); } }).show(); } @@ -1527,7 +1540,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene } else { String tag = (String) v.getTag(R.id.tag); if (null != tag) { - showTagDialog(tag); + showTagDialog((TextView) v, tag); return true; } } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index c9dc4997f..a87f7afe0 100755 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -751,4 +751,5 @@ 正在使用流量计费网络 从第 %d 页阅读 启动时请求新闻页面 + 复制翻译 diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index f2b80efe2..bfcfdd598 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -28,6 +28,7 @@ + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0f7ad22ba..cd7905fea 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -815,4 +815,5 @@ Connected to metered networks Read page %d Request news page on start + Copy translation