From 85799059497502adea7efcd677db6d5e00c4b622 Mon Sep 17 00:00:00 2001 From: Tosencen Date: Thu, 3 Jul 2025 20:00:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=201.=20=E4=BF=AE=E6=94=B9=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E4=B8=BA3.0.2=202.=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=A4=8D=E5=88=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=203.=20=E8=B0=83=E6=95=B4Toast=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E4=B8=BA1=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +-- .../com/fongmi/android/tv/utils/Notify.java | 31 +++++++++++++++++++ .../android/tv/ui/dialog/HistoryDialog.java | 13 +++++++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e558525c..37193295 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,8 @@ android { minSdk 21 //noinspection ExpiredTargetSdkVersion targetSdk 28 - versionCode 300 - versionName "3.0.0" + versionCode 302 + versionName "3.0.2" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"] diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Notify.java b/app/src/main/java/com/fongmi/android/tv/utils/Notify.java index 826d449d..b6b1184f 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Notify.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Notify.java @@ -4,8 +4,11 @@ import android.Manifest; import android.app.Notification; import android.content.Context; import android.content.pm.PackageManager; +import android.os.Handler; +import android.os.Looper; import android.text.TextUtils; import android.view.LayoutInflater; +import android.view.Gravity; import android.widget.TextView; import android.widget.Toast; @@ -25,6 +28,7 @@ public class Notify { public static final int ID = 9527; private AlertDialog mDialog; private Toast mToast; + private Handler mHandler; private static class Loader { static volatile Notify INSTANCE = new Notify(); @@ -57,6 +61,14 @@ public class Notify { get().makeText(text); } + public static void showCenter(int resId) { + if (resId != 0) showCenter(ResUtil.getString(resId)); + } + + public static void showCenter(String text) { + get().makeTextCenter(text); + } + public static void progress(Context context) { dismiss(); get().create(context); @@ -86,4 +98,23 @@ public class Notify { mToast.setDuration(Toast.LENGTH_LONG); mToast.show(); } + + private void makeTextCenter(String message) { + if (mToast != null) mToast.cancel(); + if (mHandler == null) mHandler = new Handler(Looper.getMainLooper()); + if (TextUtils.isEmpty(message)) return; + mToast = new Toast(App.get()); + TextView view = (TextView) LayoutInflater.from(App.get()).inflate(R.layout.view_toast, null); + view.setText(message); + mToast.setView(view); + mToast.setDuration(Toast.LENGTH_SHORT); + mToast.setGravity(Gravity.CENTER, 0, 0); + mToast.show(); + + // 1秒后取消Toast + mHandler.removeCallbacksAndMessages(null); + mHandler.postDelayed(() -> { + if (mToast != null) mToast.cancel(); + }, 1000); // 1000毫秒 = 1秒 + } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java index 5494ebf5..dbed6096 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java @@ -1,15 +1,20 @@ package com.fongmi.android.tv.ui.dialog; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; import android.view.LayoutInflater; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.databinding.DialogHistoryBinding; import com.fongmi.android.tv.impl.ConfigCallback; import com.fongmi.android.tv.ui.adapter.ConfigAdapter; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; +import com.fongmi.android.tv.utils.Notify; import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class HistoryDialog implements ConfigAdapter.OnClickListener { @@ -45,7 +50,6 @@ public class HistoryDialog implements ConfigAdapter.OnClickListener { binding.recycler.setHasFixedSize(true); binding.recycler.setAdapter(adapter.addAll(type)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8)); - binding.recycler.post(() -> binding.recycler.scrollToPosition(0)); } private void setDialog() { @@ -60,6 +64,13 @@ public class HistoryDialog implements ConfigAdapter.OnClickListener { dialog.dismiss(); } + @Override + public void onCopyClick(Config item) { + ClipboardManager manager = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); + manager.setPrimaryClip(ClipData.newPlainText("url", item.getUrl())); + Notify.showCenter("复制成功"); + } + @Override public void onDeleteClick(Config item) { if (adapter.remove(item) == 0) dialog.dismiss();