From e2c9f362fc171b9794a21d9387220cdb0b3ffb50 Mon Sep 17 00:00:00 2001 From: MiMo Date: Mon, 20 Jul 2026 14:51:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=BF=E8=89=B2=E9=80=9A=E9=81=93?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=B9=BF=E6=92=AD=E9=80=9A=E4=BF=A1=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增绿色通道状态变更本地广播 Action 和参数常量 - 新增 sendGreenChannelStateChangedBroadcast() 静态方法 - 开关切换时发送状态广播通知 Activity 更新状态栏 - 服务销毁时发送关闭广播确保状态同步 --- contacts/build.properties | 4 ++-- .../services/LimitedTimeGreenChannelService.java | 16 ++++++++++++++++ .../views/LimitedTimeGreenChannelView.java | 7 +++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/contacts/build.properties b/contacts/build.properties index dd90837..d88cd71 100644 --- a/contacts/build.properties +++ b/contacts/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Jul 20 04:45:26 GMT 2026 +#Mon Jul 20 14:47:50 CST 2026 stageCount=12 libraryProject= baseVersion=15.20 publishVersion=15.20.11 -buildCount=2 +buildCount=17 baseBetaVersion=15.20.12 diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java b/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java index b28397d..2591a54 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java @@ -32,6 +32,10 @@ public class LimitedTimeGreenChannelService extends Service { // 倒计时心跳广播 Action public static final String ACTION_COUNTDOWN_TICK = "cc.winboll.studio.contacts.services.ACTION_COUNTDOWN_TICK"; + // 绿色通道状态变更广播 Action + public static final String ACTION_GREEN_CHANNEL_STATE_CHANGED = "cc.winboll.studio.contacts.services.ACTION_GREEN_CHANNEL_STATE_CHANGED"; + // 广播携带的额外参数:绿色通道是否开启 + public static final String EXTRA_GREEN_CHANNEL_ENABLED = "EXTRA_GREEN_CHANNEL_ENABLED"; // 广播携带的额外参数:剩余秒数 public static final String EXTRA_REMAINING_SECONDS = "EXTRA_REMAINING_SECONDS"; // 广播携带的额外参数:总定时秒数 @@ -106,6 +110,18 @@ public class LimitedTimeGreenChannelService extends Service { return sIsServiceRunning; } + /** + * 公共静态方法:发送绿色通道状态变更广播 + * @param context 上下文 + * @param isEnabled 绿色通道是否开启 + */ + public static void sendGreenChannelStateChangedBroadcast(Context context, boolean isEnabled) { + LogUtils.i(TAG, "sendGreenChannelStateChangedBroadcast: 发送绿色通道状态变更广播, isEnabled=" + isEnabled); + Intent intent = new Intent(ACTION_GREEN_CHANNEL_STATE_CHANGED); + intent.putExtra(EXTRA_GREEN_CHANNEL_ENABLED, isEnabled); + LocalBroadcastManager.getInstance(context).sendBroadcast(intent); + } + /** * 【核心单元测试方法】 * 执行完整的单元测试流程 diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java b/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java index fd4e851..a9ed642 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java @@ -199,6 +199,9 @@ public class LimitedTimeGreenChannelView extends LinearLayout { // 保存绿色通道启用状态到持久化存储 saveGreenChannelState(isChecked); + // 发送绿色通道状态变更广播 + LimitedTimeGreenChannelService.sendGreenChannelStateChangedBroadcast(mContext, isChecked); + if (isChecked) { startLimitedTimeGreenChannelService(); } else { @@ -314,6 +317,10 @@ public class LimitedTimeGreenChannelView extends LinearLayout { LogUtils.i(TAG, "已将EditText设置为剩余秒数: " + remainingSeconds); } + // 5. 保存绿色通道关闭状态并发送广播 + saveGreenChannelState(false); + LimitedTimeGreenChannelService.sendGreenChannelStateChangedBroadcast(mContext, false); + //ToastUtils.show("服务已销毁,恢复倒计时剩余状态"); } }