移除启动页的主服务管理
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 内部类(电话状态监听相关,已删除监听逻辑)
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user