From b46032f6335eed4de2ca6a934d026ddf7a3ee88b Mon Sep 17 00:00:00 2001
From: tehcneko <7764726+tehcneko@users.noreply.github.com>
Date: Thu, 27 May 2021 22:10:37 +0800
Subject: [PATCH] Allow copy tags
---
.../ehviewer/ui/scene/GalleryDetailScene.java | 17 +++++++++++++++--
app/src/main/res/values-zh-rCN/strings.xml | 1 +
app/src/main/res/values/ids.xml | 1 +
app/src/main/res/values/strings.xml | 1 +
4 files changed, 18 insertions(+), 2 deletions(-)
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