From 8eb25c9de5c18de973d79b05262917257abb5f65 Mon Sep 17 00:00:00 2001 From: cbb <2625274797@qq.com> Date: Mon, 12 Oct 2026 02:24:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=85=E4=BC=A0=E8=BE=93=E6=9C=9F?= =?UTF-8?q?=E9=97=B4=E6=98=BE=E7=A4=BA=E9=80=9A=E7=9F=A5=E2=80=94=E2=80=94?= =?UTF-8?q?=E7=A9=BA=E9=97=B2=E4=B8=8D=E5=8F=91=E5=B8=B8=E9=A9=BB=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=EF=BC=8C=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9D=9F=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E8=BF=9B=E5=BA=A6=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++-- app/src/main/java/com/smbfast/app/App.kt | 10 ++-------- app/src/main/java/com/smbfast/app/transfer/Notifier.kt | 9 +++++++-- .../java/com/smbfast/app/transfer/TransferManager.kt | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1bc6375..280f004 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -13,8 +13,8 @@ android { applicationId = "com.smbfast.app" minSdk = 26 targetSdk = 35 - versionCode = 28 - versionName = "1.22.1" + versionCode = 29 + versionName = "1.23.0" } signingConfigs { diff --git a/app/src/main/java/com/smbfast/app/App.kt b/app/src/main/java/com/smbfast/app/App.kt index 931c3ac..240b4fc 100644 --- a/app/src/main/java/com/smbfast/app/App.kt +++ b/app/src/main/java/com/smbfast/app/App.kt @@ -2,8 +2,6 @@ package com.smbfast.app import android.app.Application import com.smbfast.app.smb.SmbClientPool -import com.smbfast.app.transfer.Notifier -import com.smbfast.app.transfer.Status import com.smbfast.app.transfer.TransferManager import com.smbfast.app.util.CrashLog import org.bouncycastle.jce.provider.BouncyCastleProvider @@ -23,12 +21,8 @@ class App : Application() { Security.addProvider(BouncyCastleProvider()) } } - // 常驻"就绪"通知(含灵动岛自检):普通通知直发,不启动前台服务—— - // 避免在 FGS 被系统限制(dataSync 配额/侧载策略)时整条链路静默失效 - runCatching { - val running = transferManager.items.value.filter { it.status == Status.RUNNING } - Notifier.notifyState(this, running) - } + // 通知策略:仅在下载/上传进行期间显示进度通知(TransferManager 直发), + // 空闲时不挂常驻通知 } override fun onTerminate() { diff --git a/app/src/main/java/com/smbfast/app/transfer/Notifier.kt b/app/src/main/java/com/smbfast/app/transfer/Notifier.kt index a7a2e10..5066e31 100644 --- a/app/src/main/java/com/smbfast/app/transfer/Notifier.kt +++ b/app/src/main/java/com/smbfast/app/transfer/Notifier.kt @@ -55,14 +55,19 @@ object Notifier { runCatching { NotificationManagerCompat.from(ctx).notify(NOTIF_ID, n) } } - /** 按当前任务状态立即重发一条通知(设置切换岛开关/模式后调用) */ + /** 按当前任务状态发通知;无传输任务时改为清除通知(仅在传输期间显示) */ fun refresh(ctx: Context) { val running = runCatching { (ctx.applicationContext as? com.smbfast.app.App) ?.transferManager?.items?.value ?.filter { it.status == Status.RUNNING } }.getOrNull() ?: emptyList() - notifyState(ctx, running) + if (running.isEmpty()) cancelProgress(ctx) else notifyState(ctx, running) + } + + /** 传输全部结束:移除进度通知(空闲不显示常驻通知) */ + fun cancelProgress(ctx: Context) { + runCatching { NotificationManagerCompat.from(ctx).cancel(NOTIF_ID) } } /** 发一条独立 id 的测试通知,验证通道可见性。返回是否成功 */ diff --git a/app/src/main/java/com/smbfast/app/transfer/TransferManager.kt b/app/src/main/java/com/smbfast/app/transfer/TransferManager.kt index 72338e5..c492ca6 100644 --- a/app/src/main/java/com/smbfast/app/transfer/TransferManager.kt +++ b/app/src/main/java/com/smbfast/app/transfer/TransferManager.kt @@ -79,10 +79,10 @@ class TransferManager(private val appContext: Context) { .onFailure { com.smbfast.app.util.CrashLog.append("notify", it) } } } else if (hadRunning) { - // 全部结束:恢复"就绪"常驻态 + // 全部结束:直接移除通知(空闲不显示常驻通知) hadRunning = false lastNotify = 0 - runCatching { Notifier.notifyState(appContext, emptyList()) } + runCatching { Notifier.cancelProgress(appContext) } } } }