移除启动页的主服务管理

This commit is contained in:
2025-12-13 11:13:45 +08:00
parent 8fe7444065
commit a1a337558e
2 changed files with 12 additions and 74 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Fri Dec 12 17:21:18 GMT 2025
#Sat Dec 13 03:05:50 GMT 2025
stageCount=1
libraryProject=
baseVersion=15.12
publishVersion=15.12.0
buildCount=75
buildCount=78
baseBetaVersion=15.12.1

View File

@@ -11,8 +11,6 @@ import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.telecom.TelecomManager;
import android.view.Menu;
import android.view.MenuItem;
@@ -32,8 +30,6 @@ import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.fragments.CallLogFragment;
import cc.winboll.studio.contacts.fragments.ContactsFragment;
import cc.winboll.studio.contacts.fragments.LogFragment;
import cc.winboll.studio.contacts.model.MainServiceBean;
import cc.winboll.studio.contacts.services.MainService;
import cc.winboll.studio.contacts.utils.PermissionUtils;
import cc.winboll.studio.contacts.views.DunTemperatureView;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
@@ -48,7 +44,7 @@ import java.util.List;
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
* @Date 2025/08/30 14:32
* @Describe Contacts 主窗口(完全适配 API 30 + Java 7 语法)
* 核心优化1. 移除电话状态监听 2. 移除通话筛选服务 3. 移除 MainService 绑定 4. 保留原有页面结构
* 核心优化1. 移除电话状态监听 2. 移除通话筛选服务 3. 移除 MainService 所有相关逻辑 4. 保留原有页面结构
*/
public final class MainActivity extends WinBollActivity implements IWinBoLLActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
@@ -86,7 +82,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
private LinearLayout linearLayout;
// ====================== 5. 业务逻辑成员区 ======================
private MainServiceBean mMainServiceBean;
private int currentPoint = 0;
private List<Fragment> fragmentList;
private List<String> tabTitleList;
@@ -127,13 +122,11 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
mADsBannerView.resumeADs(MainActivity.this);
LogUtils.d(TAG, "onResume: 广告栏资源已恢复");
}
// 移除 MainService 绑定逻辑
}
@Override
protected void onPause() {
super.onPause();
// 移除 MainService 解绑逻辑
}
@Override
@@ -145,8 +138,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
mADsBannerView.releaseAdResources();
LogUtils.d(TAG, "onDestroy: 广告栏资源已释放");
}
// 移除电话状态监听释放逻辑(已删除监听初始化,无需释放)
// 移除 MainService 解绑及状态传递逻辑
LogUtils.d(TAG, "===== onDestroy: 主Activity销毁完成 =====");
}
@@ -187,7 +178,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
case REQUEST_OVERLAY_PERMISSION:
handleOverlayPermissionResult();
break;
// 移除 通话筛选权限回调REQUEST_CALL_SCREENING_PERMISSION分支
default:
LogUtils.w(TAG, "onActivityResult: 未知requestCode=" + requestCode);
break;
@@ -200,7 +190,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
private void handleOverlayPermissionResult() {
if (PermissionUtils.isOverlayPermissionGranted(this)) {
LogUtils.d(TAG, "handleOverlayPermissionResult: 悬浮窗权限申请成功");
// 移除 通话筛选权限检查(直接完成权限流程)
LogUtils.d(TAG, "handleOverlayPermissionResult: 所有权限已授予");
initUIAndLogic(null);
} else {
@@ -210,7 +199,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
}
/**
* 检查并申请剩余权限(仅保留悬浮窗,移除通话筛选权限
* 检查并申请剩余权限(仅保留悬浮窗)
*/
private void checkAndRequestRemainingPermissions() {
if (!PermissionUtils.isOverlayPermissionGranted(this)) {
@@ -280,12 +269,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
mADsBannerView = (ADsBannerView) findViewById(R.id.adsbanner);
LogUtils.d(TAG, "initUIAndLogic: 广告栏控件初始化完成");
// 4. 主服务初始化(保留启动逻辑,移除绑定相关)
initMainService();
LogUtils.d(TAG, "initUIAndLogic: 主服务初始化完成");
// 5. 移除 电话状态监听初始化逻辑initPhoneStateListener() 调用删除)
// 左边盾值视图初始化Java7分步写法禁止链式调用
DunTemperatureView tempViewLeft = (DunTemperatureView) findViewById(R.id.dun_temp_view_left);
tempViewLeft.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
@@ -298,22 +281,16 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
positions[0] = 0.0f;
positions[1] = 1.0f;
tempViewLeft.setGradientColors(customColors, positions);
// 文本放在温度条右侧(默认,可省略)
tempViewLeft.setTextPosition(true);
// 文本放在温度条右侧(默认,可省略)
tempViewLeft.setTextPosition(true);
// 右边盾值视图初始化Java7分步写法禁止链式调用
DunTemperatureView tempViewRight = (DunTemperatureView) findViewById(R.id.dun_temp_view_right);
tempViewRight.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
tempViewRight.setCurrentValue(Rules.getInstance(this).getSettingsModel().getDunCurrentCount());
// int[] customColors = new int[2];
// customColors[0] = Color.parseColor("#FF3366FF");
// customColors[1] = Color.parseColor("#FF9900CC");
// float[] positions = new float[2];
// positions[0] = 0.0f;
// positions[1] = 1.0f;
tempViewRight.setGradientColors(customColors, positions);
// 文本放在温度条左侧
tempViewRight.setTextPosition(false);
// 文本放在温度条左侧
tempViewRight.setTextPosition(false);
LogUtils.d(TAG, "initUIAndLogic: 盾值视图初始化完成");
LogUtils.d(TAG, "===== initUIAndLogic: 初始化流程全部结束 =====");
}
@@ -343,38 +320,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
LogUtils.d(TAG, "initViewPagerAndTabs: ViewPager初始化完成Fragment数量=" + fragmentList.size());
}
/**
* 初始化主服务(保留启动逻辑,移除绑定相关;优化启动方式为静态方法)
*/
private void initMainService() {
LogUtils.d(TAG, "initMainService: 开始初始化主服务配置");
mMainServiceBean = MainServiceBean.loadBean(this, MainServiceBean.class);
if (mMainServiceBean == null) {
LogUtils.d(TAG, "initMainService: 服务配置Bean不存在创建新实例");
mMainServiceBean = new MainServiceBean();
MainServiceBean.saveBean(this, mMainServiceBean);
}
// 检查服务状态并启动(使用静态方法,无绑定依赖)
if (mMainServiceBean.isEnable() && !isServiceRunning(MainService.class)) {
LogUtils.d(TAG, "initMainService: 主服务已启用且未运行延迟1秒启动");
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
MainService.startMainServiceAndSaveStatus(MainActivity.this);
LogUtils.d(TAG, "initMainService: 主服务启动任务执行");
}
}, 1000);
} else {
String status = mMainServiceBean.isEnable() ? "已启用但运行中" : "未启用";
LogUtils.d(TAG, "initMainService: 主服务" + status + ",跳过启动流程");
}
}
// ====================== 10. 移除 MainService 绑定/解绑工具方法bindMainService/unbindMainService 完全删除) ======================
// ====================== 11. 菜单相关函数区 ======================
// ====================== 10. 菜单相关函数区 ======================
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar_main, menu);
@@ -392,7 +338,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
return super.onOptionsItemSelected(item);
}
// ====================== 12. ViewPager页面回调区 ======================
// ====================== 11. ViewPager页面回调区 ======================
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@@ -408,7 +354,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
@Override
public void onClick(View v) {}
// ====================== 13. 工具函数区 ======================
// ====================== 12. 工具函数区 ======================
/**
* 拨号工具方法(添加空指针防护)
*/
@@ -472,11 +418,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
return false;
}
// ====================== 14. 内部类定义区Java 7 规范禁止Lambda ======================
/**
* 移除 MainServiceConnection 内部类(服务绑定相关,已删除绑定逻辑)
*/
// ====================== 13. 内部类定义区Java 7 规范禁止Lambda ======================
/**
* ViewPager适配器静态内部类减少内存泄漏风险Java7泛型完整声明
*/
@@ -506,9 +448,5 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
return tabTitleList.get(position);
}
}
/**
* 移除 MyPhoneStateListener 内部类(电话状态监听相关,已删除监听逻辑)
*/
}