From 27b75746fdf42aa33917d33c467fe3002b275036 Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 15 Nov 2022 22:17:12 +0800 Subject: [PATCH] Simplify clipboardutils --- .../ehviewer/preference/AccountPreference.kt | 2 +- .../ehviewer/ui/GalleryInfoBottomSheet.kt | 3 +-- .../com/hippo/ehviewer/ui/MainActivity.java | 2 +- .../ui/scene/GalleryCommentsScene.java | 2 +- .../ehviewer/ui/scene/GalleryDetailScene.java | 4 +-- .../main/java/com/hippo/util/ClipboardUtil.kt | 26 +++++++++---------- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/preference/AccountPreference.kt b/app/src/main/java/com/hippo/ehviewer/preference/AccountPreference.kt index 0cef15d91..4a7fca324 100644 --- a/app/src/main/java/com/hippo/ehviewer/preference/AccountPreference.kt +++ b/app/src/main/java/com/hippo/ehviewer/preference/AccountPreference.kt @@ -81,7 +81,7 @@ class AccountPreference @JvmOverloads constructor( super.onPrepareDialogBuilder(builder) if (message != null) { builder.setNeutralButton(R.string.settings_eh_identity_cookies_copy) { dialog: DialogInterface?, which: Int -> - context.getClipboardManager().addTextToClipboard(message, true, mActivity) + mActivity.addTextToClipboard(message, true) this@AccountPreference.onClick(dialog, which) } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt b/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt index bd32bdede..9a0ccaacc 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt @@ -124,10 +124,9 @@ class GalleryInfoBottomSheet(detail: GalleryDetail) : BottomSheetDialogFragment( if (position == INDEX_PARENT) { UrlOpener.openUrl(context, mValues[position], true) } else { - requireContext().getClipboardManager().addTextToClipboard( + activity?.addTextToClipboard( mValues[position], false, - activity ) if (position == INDEX_URL) { // Save it to avoid detect the gallery diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java index b7ef3476f..fe3ab7df4 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -256,7 +256,7 @@ public final class MainActivity extends StageActivity String url = intent.getData().toString(); new EditTextDialogBuilder(this, url, "") .setTitle(R.string.error_cannot_parse_the_url) - .setPositiveButton(android.R.string.copy, (dialog, which) -> ClipboardUtilKt.addTextToClipboard(ClipboardUtilKt.getClipboardManager(this), url, false, this)) + .setPositiveButton(android.R.string.copy, (dialog, which) -> ClipboardUtilKt.addTextToClipboard(this, url, false)) .show(); } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index 4fe40df5a..7bce03d72 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -354,7 +354,7 @@ public final class GalleryCommentsScene extends ToolbarScene } int id = menuId.get(which); if (id == R.id.copy) { - ClipboardUtilKt.addTextToClipboard(ClipboardUtilKt.getClipboardManager(getContext()), comment.comment, false, getActivity()); + ClipboardUtilKt.addTextToClipboard(requireActivity(), comment.comment, false); } else if (id == R.id.vote_up) { voteComment(comment.id, 1); } else if (id == R.id.vote_down) { 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 ba30a9ad9..efbb504e4 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 @@ -1453,9 +1453,9 @@ public class GalleryDetailScene extends ToolbarScene implements View.OnClickList } else if (id == R.id.add_filter) { showFilterTagDialog(tag); } else if (id == R.id.copy) { - ClipboardUtilKt.addTextToClipboard(ClipboardUtilKt.getClipboardManager(getContext()), tag, false, getActivity()); + ClipboardUtilKt.addTextToClipboard(requireActivity(), tag, false); } else if (id == R.id.copy_trans) { - ClipboardUtilKt.addTextToClipboard(ClipboardUtilKt.getClipboardManager(getContext()), tv.getText().toString(), false, getActivity()); + ClipboardUtilKt.addTextToClipboard(requireActivity(), tv.getText().toString(), false); } }).show(); } diff --git a/app/src/main/java/com/hippo/util/ClipboardUtil.kt b/app/src/main/java/com/hippo/util/ClipboardUtil.kt index 59c74babe..cda360c5e 100644 --- a/app/src/main/java/com/hippo/util/ClipboardUtil.kt +++ b/app/src/main/java/com/hippo/util/ClipboardUtil.kt @@ -17,7 +17,6 @@ */ package com.hippo.util -import android.app.Activity import android.content.ClipData import android.content.ClipDescription import android.content.ClipboardManager @@ -35,20 +34,21 @@ fun Context.getClipboardManager(): ClipboardManager { return getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager } -fun ClipboardManager.addTextToClipboard(text: String?, isSensitive: Boolean, activity: Activity?) { - setPrimaryClip(ClipData.newPlainText(null, text).apply { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && isSensitive) - description.extras = PersistableBundle().apply { - putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true) - } - }) - +fun Context.addTextToClipboard(text: String?, isSensitive: Boolean) { + getClipboardManager().apply { + setPrimaryClip(ClipData.newPlainText(null, text).apply { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && isSensitive) + description.extras = PersistableBundle().apply { + putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true) + } + }) + } // Avoid double notify user since system have done that on Tiramisu above if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) - if (activity is MainActivity) { - activity.showTip(R.string.copied_to_clipboard, BaseScene.LENGTH_SHORT) - } else if (activity is SettingsActivity) { - activity.showTip(R.string.copied_to_clipboard, BaseScene.LENGTH_SHORT) + if (this is MainActivity) { + showTip(R.string.copied_to_clipboard, BaseScene.LENGTH_SHORT) + } else if (this is SettingsActivity) { + showTip(R.string.copied_to_clipboard, BaseScene.LENGTH_SHORT) } }