diff --git a/contacts/src/main/AndroidManifest.xml b/contacts/src/main/AndroidManifest.xml index cc2ce04..3324f40 100644 --- a/contacts/src/main/AndroidManifest.xml +++ b/contacts/src/main/AndroidManifest.xml @@ -254,7 +254,7 @@ - + diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/activities/UnitTestActivity.java b/contacts/src/main/java/cc/winboll/studio/contacts/activities/UnitTestActivity.java index c8af316..1345c56 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/activities/UnitTestActivity.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/activities/UnitTestActivity.java @@ -7,7 +7,7 @@ import androidx.appcompat.app.AppCompatActivity; import cc.winboll.studio.contacts.R; import cc.winboll.studio.contacts.activities.SettingsActivity; import cc.winboll.studio.contacts.dun.Rules; -import cc.winboll.studio.contacts.services.LimitedTimeSpecialChannelService; +import cc.winboll.studio.contacts.services.LimitedTimeGreenChannelService; import cc.winboll.studio.contacts.utils.IntUtils; import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity; import cc.winboll.studio.libappbase.LogUtils; @@ -122,7 +122,7 @@ public class UnitTestActivity extends WinBollActivity implements IWinBoLLActivit new Thread(new Runnable(){ @Override public void run() { - LimitedTimeSpecialChannelService.unitTest(UnitTestActivity.this); + LimitedTimeGreenChannelService.unitTest(UnitTestActivity.this); } }).start(); } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java b/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java index 0bc4402..77fa88a 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java @@ -5,7 +5,7 @@ import cc.winboll.studio.contacts.activities.SettingsActivity; import cc.winboll.studio.contacts.bobulltoon.TomCat; import cc.winboll.studio.contacts.model.PhoneConnectRuleBean; import cc.winboll.studio.contacts.model.SettingsBean; -import cc.winboll.studio.contacts.services.LimitedTimeSpecialChannelService; +import cc.winboll.studio.contacts.services.LimitedTimeGreenChannelService; import cc.winboll.studio.contacts.services.MainService; import cc.winboll.studio.contacts.utils.ContactUtils; import cc.winboll.studio.contacts.utils.IntUtils; @@ -172,9 +172,9 @@ public class Rules { LogUtils.d(TAG, String.format("isDefend == %s\nisConnect == %s", isDefend, isConnect)); } - // 限时特殊通道打开时返回连接 - if (!isDefend && LimitedTimeSpecialChannelService.isServiceRunning()) { - LogUtils.d(TAG, String.format("PhoneNumber %s\n and Limited Time Special Channel Service Is Running.", phoneNumber)); + // 限时绿色通道打开时返回连接 + if (!isDefend && LimitedTimeGreenChannelService.isServiceRunning()) { + LogUtils.d(TAG, String.format("PhoneNumber %s\n and Limited Time Green Channel Service Is Running.", phoneNumber)); isDefend = true; isConnect = true; LogUtils.d(TAG, String.format("isDefend == %s\nisConnect == %s", isDefend, isConnect)); diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeSpecialChannelService.java b/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java similarity index 96% rename from contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeSpecialChannelService.java rename to contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java index aa62f02..b28397d 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeSpecialChannelService.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/services/LimitedTimeGreenChannelService.java @@ -13,17 +13,17 @@ import cc.winboll.studio.libappbase.LogUtils; * @Author 豆包&ZhanGSKen * @Date 2026/04/18 15:00:00 (GMT+8) * @LastEditTime 2026/04/22 17:20:00 (GMT+8) - * @Describe 限时特殊通道服务 + * @Describe 限时绿色通道服务 * 提供安全的服务启动、令牌校验及循环任务管理 * 新增功能: * 1. 计时过程中实时输出剩余秒数 * 2. 服务销毁前,发送本地广播通知应用内其他组件,并携带剩余秒数信息 * 3. 每秒发送一次倒计时状态的本地广播 */ -public class LimitedTimeSpecialChannelService extends Service { +public class LimitedTimeGreenChannelService extends Service { // ========================= 常量定义 ========================= - public static final String TAG = "LimitedTimeSpecialChannelService"; + public static final String TAG = "LimitedTimeGreenChannelService"; public static final String EXTRA_DELAY_MILLIS = "EXTRA_DELAY_MILLIS"; private static final String EXTRA_SECURITY_TOKEN = "EXTRA_SECURITY_TOKEN"; @@ -44,7 +44,7 @@ public class LimitedTimeSpecialChannelService extends Service { */ public static final String mValidToken = "VALID_TOKEN_" + System.currentTimeMillis(); - private static volatile LimitedTimeSpecialChannelService sInstance = null; + private static volatile LimitedTimeGreenChannelService sInstance = null; private static volatile boolean sIsServiceRunning = false; // ========================= 成员变量 ========================= @@ -73,7 +73,7 @@ public class LimitedTimeSpecialChannelService extends Service { } // 构建Intent传递参数 - Intent intent = new Intent(context, LimitedTimeSpecialChannelService.class); + Intent intent = new Intent(context, LimitedTimeGreenChannelService.class); intent.putExtra(EXTRA_SECURITY_TOKEN, mValidToken); intent.putExtra(EXTRA_DELAY_MILLIS, delayMillis); @@ -93,7 +93,7 @@ public class LimitedTimeSpecialChannelService extends Service { LogUtils.w(TAG, "停止失败,上下文为null"); return; } - Intent intent = new Intent(context, LimitedTimeSpecialChannelService.class); + Intent intent = new Intent(context, LimitedTimeGreenChannelService.class); context.stopService(intent); LogUtils.i(TAG, "服务停止命令已发出"); } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeSpecialChannelView.java b/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java similarity index 88% rename from contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeSpecialChannelView.java rename to contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java index c73e168..e2442f8 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeSpecialChannelView.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/views/LimitedTimeGreenChannelView.java @@ -13,7 +13,7 @@ import android.widget.LinearLayout; import android.widget.Switch; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import cc.winboll.studio.contacts.R; -import cc.winboll.studio.contacts.services.LimitedTimeSpecialChannelService; +import cc.winboll.studio.contacts.services.LimitedTimeGreenChannelService; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.ToastUtils; @@ -21,7 +21,7 @@ import cc.winboll.studio.libappbase.ToastUtils; * @Author 豆包&ZhanGSKen * @Date 2026/04/18 15:05:00 (GMT+8) * @LastEditTime 2026/04/22 17:30:00 (GMT+8) - * @Describe 限时特殊通道视图 + * @Describe 限时绿色通道视图 * 功能说明: * 1. Switch 打开时,EditText 不可编辑,布局背景变为绿色,加减按钮不可用 * 2. Switch 关闭时,EditText 可编辑,布局背景恢复为白色,加减按钮恢复可用 @@ -31,10 +31,10 @@ import cc.winboll.studio.libappbase.ToastUtils; * 6. 新增快速设置按钮(btn_thisSeconds),点击直接设置为当前量级3600秒 * 7. [新增] 服务销毁时,恢复EditText显示为倒计时剩余秒数 */ -public class LimitedTimeSpecialChannelView extends LinearLayout { +public class LimitedTimeGreenChannelView extends LinearLayout { // ====================== 常量定义 ========================= - public static final String TAG = "LimitedTimeSpecialChannelView"; + public static final String TAG = "LimitedTimeGreenChannelView"; // 定义秒数增量的量级 private static final long SECONDS_INCREMENT = 3600; @@ -50,17 +50,17 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { private android.content.BroadcastReceiver mCountdownReceiver; // ====================== 构造函数 ========================= - public LimitedTimeSpecialChannelView(Context context) { + public LimitedTimeGreenChannelView(Context context) { super(context); initView(context); } - public LimitedTimeSpecialChannelView(Context context, AttributeSet attrs) { + public LimitedTimeGreenChannelView(Context context, AttributeSet attrs) { super(context, attrs); initView(context); } - public LimitedTimeSpecialChannelView(Context context, AttributeSet attrs, int defStyleAttr) { + public LimitedTimeGreenChannelView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(context); } @@ -71,7 +71,7 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { this.mContext = context; // 加载布局文件 - LayoutInflater.from(context).inflate(R.layout.view_limitedtimespecialchannel, this, true); + LayoutInflater.from(context).inflate(R.layout.view_limitedtimegreenchannel, this, true); LogUtils.i(TAG, "布局文件加载完成"); // 绑定控件ID @@ -192,9 +192,9 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { updateUIState(!isChecked); if (isChecked) { - startLimitedTimeSpecialChannelService(); + startLimitedTimeGreenChannelService(); } else { - LimitedTimeSpecialChannelService.stopService(mContext); + LimitedTimeGreenChannelService.stopService(mContext); } } }); @@ -222,11 +222,11 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { */ private void registerServiceDestroyedListener() { LogUtils.i(TAG, "注册服务销毁广播监听"); - IntentFilter filter = new IntentFilter(LimitedTimeSpecialChannelService.ACTION_SERVICE_DESTROYED); + IntentFilter filter = new IntentFilter(LimitedTimeGreenChannelService.ACTION_SERVICE_DESTROYED); LocalBroadcastManager.getInstance(mContext).registerReceiver(new android.content.BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - if (LimitedTimeSpecialChannelService.ACTION_SERVICE_DESTROYED.equals(intent.getAction())) { + if (LimitedTimeGreenChannelService.ACTION_SERVICE_DESTROYED.equals(intent.getAction())) { LogUtils.i(TAG, "收到服务销毁广播,执行恢复操作"); // 1. 恢复开关状态 @@ -236,7 +236,7 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { // 2. [核心修改] 检索并设置倒计时剩余秒数参数 // 从广播附加数据中获取之前服务发送的剩余秒数 - long remainingSeconds = intent.getLongExtra(LimitedTimeSpecialChannelService.EXTRA_REMAINING_SECONDS, 0); + long remainingSeconds = intent.getLongExtra(LimitedTimeGreenChannelService.EXTRA_REMAINING_SECONDS, 0); // 实际倒计时消耗冲正 remainingSeconds -= 1; // 倒计时秒数0值保底 @@ -266,8 +266,8 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { mCountdownReceiver = new android.content.BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - if (LimitedTimeSpecialChannelService.ACTION_COUNTDOWN_TICK.equals(intent.getAction())) { - long remainingSeconds = intent.getLongExtra(LimitedTimeSpecialChannelService.EXTRA_REMAINING_SECONDS, 0); + if (LimitedTimeGreenChannelService.ACTION_COUNTDOWN_TICK.equals(intent.getAction())) { + long remainingSeconds = intent.getLongExtra(LimitedTimeGreenChannelService.EXTRA_REMAINING_SECONDS, 0); if (mEtSeconds != null) { mEtSeconds.setText(String.valueOf(remainingSeconds)); } @@ -278,7 +278,7 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { } }; - IntentFilter filter = new IntentFilter(LimitedTimeSpecialChannelService.ACTION_COUNTDOWN_TICK); + IntentFilter filter = new IntentFilter(LimitedTimeGreenChannelService.ACTION_COUNTDOWN_TICK); LocalBroadcastManager.getInstance(mContext).registerReceiver(mCountdownReceiver, filter); LogUtils.i(TAG, "倒计时广播注册成功"); } @@ -286,8 +286,8 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { /** * 启动限时特殊通道服务 */ - private void startLimitedTimeSpecialChannelService() { - LogUtils.i(TAG, "准备启动限时特殊通道服务"); + private void startLimitedTimeGreenChannelService() { + LogUtils.i(TAG, "准备启动限时绿色通道服务"); String secondsStr = mEtSeconds.getText().toString().trim(); if (secondsStr.isEmpty()) { LogUtils.w(TAG, "输入框为空,使用默认值 3600 秒"); @@ -299,8 +299,8 @@ public class LimitedTimeSpecialChannelView extends LinearLayout { long delayMillis = seconds * 1000; LogUtils.i(TAG, "启动参数 - 输入秒数: " + seconds + ", 转换毫秒: " + delayMillis); - //ToastUtils.show("调用 LimitedTimeSpecialChannelService 服务"); - LimitedTimeSpecialChannelService.startService(mContext, delayMillis); + //ToastUtils.show("调用 LimitedTimeGreenChannelService 服务"); + LimitedTimeGreenChannelService.startService(mContext, delayMillis); } catch (NumberFormatException e) { LogUtils.e(TAG, "输入的秒数格式错误: " + secondsStr, e); } diff --git a/contacts/src/main/res/layout/activity_settings.xml b/contacts/src/main/res/layout/activity_settings.xml index a43e1a7..d54062c 100644 --- a/contacts/src/main/res/layout/activity_settings.xml +++ b/contacts/src/main/res/layout/activity_settings.xml @@ -67,12 +67,12 @@ + android:text="绿色通道设置:"/> - + android:id="@+id/view_LimitedTimeGreenChannel"/> diff --git a/contacts/src/main/res/layout/view_limitedtimespecialchannel.xml b/contacts/src/main/res/layout/view_limitedtimegreenchannel.xml similarity index 100% rename from contacts/src/main/res/layout/view_limitedtimespecialchannel.xml rename to contacts/src/main/res/layout/view_limitedtimegreenchannel.xml