From 7a3efa2bee1efaa64dad3f37e1e31e7e490b6a05 Mon Sep 17 00:00:00 2001
From: ocean <503259349@qq.com>
Date: Tue, 2 Sep 2025 16:03:22 +0800
Subject: [PATCH] update
---
.../pdfreader/pro/app/ui/act/MainActivity.kt | 13 ++++
.../all/pdfreader/pro/app/util/AppUtils.kt | 47 ++++++++++++++
.../res/drawable/dr_round_click_effect_bg.xml | 18 ++++++
app/src/main/res/drawable/search.xml | 9 +++
app/src/main/res/drawable/sidebar.xml | 9 +++
app/src/main/res/drawable/sorting.xml | 9 +++
app/src/main/res/layout/activity_main.xml | 62 ++++++++++++++++++-
app/src/main/res/values/colors.xml | 1 +
8 files changed, 165 insertions(+), 3 deletions(-)
create mode 100644 app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
create mode 100644 app/src/main/res/drawable/dr_round_click_effect_bg.xml
create mode 100644 app/src/main/res/drawable/search.xml
create mode 100644 app/src/main/res/drawable/sidebar.xml
create mode 100644 app/src/main/res/drawable/sorting.xml
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
index d856d31..19f2522 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/act/MainActivity.kt
@@ -15,6 +15,7 @@ import com.all.pdfreader.pro.app.ui.fragment.FavoriteFrag
import com.all.pdfreader.pro.app.ui.fragment.HomeFrag
import com.all.pdfreader.pro.app.ui.fragment.RecentlyFrag
import com.all.pdfreader.pro.app.ui.fragment.ToolsFrag
+import com.all.pdfreader.pro.app.util.AppUtils.setDebouncedClickWithAnimation
import com.all.pdfreader.pro.app.util.FileChangeObserver
import com.all.pdfreader.pro.app.util.FileUtils
import com.all.pdfreader.pro.app.util.PdfMetadataExtractor
@@ -98,6 +99,18 @@ class MainActivity : BaseActivity(), PermissionDialogFragment.PermissionCallback
//直接跳转到权限设置页面
requestPermissions()
}
+
+ binding.sidebarBtn.setDebouncedClickWithAnimation {
+
+ }
+
+ binding.searchBtn.setDebouncedClickWithAnimation {
+
+ }
+
+ binding.sortingBtn.setDebouncedClickWithAnimation {
+
+ }
}
private fun switchFragment(target: Fragment) {
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt b/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
new file mode 100644
index 0000000..7a3b90c
--- /dev/null
+++ b/app/src/main/java/com/all/pdfreader/pro/app/util/AppUtils.kt
@@ -0,0 +1,47 @@
+package com.all.pdfreader.pro.app.util
+
+import android.view.View
+
+object AppUtils {
+
+ /**
+ * 为 View 点击事件添加防抖点击 + 动画 + 执行逻辑
+ *
+ * @param debounceTime 防抖间隔,默认 500 毫秒
+ * @param onClick 点击后执行的逻辑(动画完成后调用)
+ */
+ fun View.setDebouncedClickWithAnimation(
+ debounceTime: Long = 500L,
+ onClick: () -> Unit
+ ) {
+ var lastClickTime = 0L
+
+ this.setOnClickListener {
+ val currentTime = System.currentTimeMillis()
+ if (currentTime - lastClickTime < debounceTime) {
+ return@setOnClickListener
+ }
+ lastClickTime = currentTime
+
+ // 动画 + 禁用点击
+ this.isEnabled = false
+ this.animate()
+ .scaleX(1.2f)
+ .scaleY(1.2f)
+ .setDuration(150)
+ .withEndAction {
+ this.animate()
+ .scaleX(1f)
+ .scaleY(1f)
+ .setDuration(150)
+ .withEndAction {
+ this.isEnabled = true
+ onClick() // 执行传入的逻辑
+ }
+ .start()
+ }
+ .start()
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dr_round_click_effect_bg.xml b/app/src/main/res/drawable/dr_round_click_effect_bg.xml
new file mode 100644
index 0000000..eb29795
--- /dev/null
+++ b/app/src/main/res/drawable/dr_round_click_effect_bg.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/search.xml b/app/src/main/res/drawable/search.xml
new file mode 100644
index 0000000..8cd097d
--- /dev/null
+++ b/app/src/main/res/drawable/search.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/sidebar.xml b/app/src/main/res/drawable/sidebar.xml
new file mode 100644
index 0000000..48aceef
--- /dev/null
+++ b/app/src/main/res/drawable/sidebar.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/sorting.xml b/app/src/main/res/drawable/sorting.xml
new file mode 100644
index 0000000..453b0f2
--- /dev/null
+++ b/app/src/main/res/drawable/sorting.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index b73c530..673be4a 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -2,7 +2,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="68dp">
#E6E6E6
#F6F6F6
#E0E0E0
+ #2c2c2c
\ No newline at end of file