移除启动页的主服务管理
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#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
|
stageCount=1
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.12
|
baseVersion=15.12
|
||||||
publishVersion=15.12.0
|
publishVersion=15.12.0
|
||||||
buildCount=75
|
buildCount=78
|
||||||
baseBetaVersion=15.12.1
|
baseBetaVersion=15.12.1
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ import android.graphics.Color;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.Looper;
|
|
||||||
import android.telecom.TelecomManager;
|
import android.telecom.TelecomManager;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
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.CallLogFragment;
|
||||||
import cc.winboll.studio.contacts.fragments.ContactsFragment;
|
import cc.winboll.studio.contacts.fragments.ContactsFragment;
|
||||||
import cc.winboll.studio.contacts.fragments.LogFragment;
|
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.utils.PermissionUtils;
|
||||||
import cc.winboll.studio.contacts.views.DunTemperatureView;
|
import cc.winboll.studio.contacts.views.DunTemperatureView;
|
||||||
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
@@ -48,7 +44,7 @@ import java.util.List;
|
|||||||
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
||||||
* @Date 2025/08/30 14:32
|
* @Date 2025/08/30 14:32
|
||||||
* @Describe Contacts 主窗口(完全适配 API 30 + Java 7 语法)
|
* @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 {
|
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;
|
private LinearLayout linearLayout;
|
||||||
|
|
||||||
// ====================== 5. 业务逻辑成员区 ======================
|
// ====================== 5. 业务逻辑成员区 ======================
|
||||||
private MainServiceBean mMainServiceBean;
|
|
||||||
private int currentPoint = 0;
|
private int currentPoint = 0;
|
||||||
private List<Fragment> fragmentList;
|
private List<Fragment> fragmentList;
|
||||||
private List<String> tabTitleList;
|
private List<String> tabTitleList;
|
||||||
@@ -127,13 +122,11 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
mADsBannerView.resumeADs(MainActivity.this);
|
mADsBannerView.resumeADs(MainActivity.this);
|
||||||
LogUtils.d(TAG, "onResume: 广告栏资源已恢复");
|
LogUtils.d(TAG, "onResume: 广告栏资源已恢复");
|
||||||
}
|
}
|
||||||
// 移除 MainService 绑定逻辑
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
// 移除 MainService 解绑逻辑
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -145,8 +138,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
mADsBannerView.releaseAdResources();
|
mADsBannerView.releaseAdResources();
|
||||||
LogUtils.d(TAG, "onDestroy: 广告栏资源已释放");
|
LogUtils.d(TAG, "onDestroy: 广告栏资源已释放");
|
||||||
}
|
}
|
||||||
// 移除电话状态监听释放逻辑(已删除监听初始化,无需释放)
|
|
||||||
// 移除 MainService 解绑及状态传递逻辑
|
|
||||||
LogUtils.d(TAG, "===== onDestroy: 主Activity销毁完成 =====");
|
LogUtils.d(TAG, "===== onDestroy: 主Activity销毁完成 =====");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +178,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
case REQUEST_OVERLAY_PERMISSION:
|
case REQUEST_OVERLAY_PERMISSION:
|
||||||
handleOverlayPermissionResult();
|
handleOverlayPermissionResult();
|
||||||
break;
|
break;
|
||||||
// 移除 通话筛选权限回调(REQUEST_CALL_SCREENING_PERMISSION)分支
|
|
||||||
default:
|
default:
|
||||||
LogUtils.w(TAG, "onActivityResult: 未知requestCode=" + requestCode);
|
LogUtils.w(TAG, "onActivityResult: 未知requestCode=" + requestCode);
|
||||||
break;
|
break;
|
||||||
@@ -200,7 +190,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
private void handleOverlayPermissionResult() {
|
private void handleOverlayPermissionResult() {
|
||||||
if (PermissionUtils.isOverlayPermissionGranted(this)) {
|
if (PermissionUtils.isOverlayPermissionGranted(this)) {
|
||||||
LogUtils.d(TAG, "handleOverlayPermissionResult: 悬浮窗权限申请成功");
|
LogUtils.d(TAG, "handleOverlayPermissionResult: 悬浮窗权限申请成功");
|
||||||
// 移除 通话筛选权限检查(直接完成权限流程)
|
|
||||||
LogUtils.d(TAG, "handleOverlayPermissionResult: 所有权限已授予");
|
LogUtils.d(TAG, "handleOverlayPermissionResult: 所有权限已授予");
|
||||||
initUIAndLogic(null);
|
initUIAndLogic(null);
|
||||||
} else {
|
} else {
|
||||||
@@ -210,7 +199,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查并申请剩余权限(仅保留悬浮窗,移除通话筛选权限)
|
* 检查并申请剩余权限(仅保留悬浮窗)
|
||||||
*/
|
*/
|
||||||
private void checkAndRequestRemainingPermissions() {
|
private void checkAndRequestRemainingPermissions() {
|
||||||
if (!PermissionUtils.isOverlayPermissionGranted(this)) {
|
if (!PermissionUtils.isOverlayPermissionGranted(this)) {
|
||||||
@@ -280,12 +269,6 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
mADsBannerView = (ADsBannerView) findViewById(R.id.adsbanner);
|
mADsBannerView = (ADsBannerView) findViewById(R.id.adsbanner);
|
||||||
LogUtils.d(TAG, "initUIAndLogic: 广告栏控件初始化完成");
|
LogUtils.d(TAG, "initUIAndLogic: 广告栏控件初始化完成");
|
||||||
|
|
||||||
// 4. 主服务初始化(保留启动逻辑,移除绑定相关)
|
|
||||||
initMainService();
|
|
||||||
LogUtils.d(TAG, "initUIAndLogic: 主服务初始化完成");
|
|
||||||
|
|
||||||
// 5. 移除 电话状态监听初始化逻辑(initPhoneStateListener() 调用删除)
|
|
||||||
|
|
||||||
// 左边盾值视图初始化(Java7分步写法,禁止链式调用)
|
// 左边盾值视图初始化(Java7分步写法,禁止链式调用)
|
||||||
DunTemperatureView tempViewLeft = (DunTemperatureView) findViewById(R.id.dun_temp_view_left);
|
DunTemperatureView tempViewLeft = (DunTemperatureView) findViewById(R.id.dun_temp_view_left);
|
||||||
tempViewLeft.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
|
tempViewLeft.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
|
||||||
@@ -298,22 +281,16 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
positions[0] = 0.0f;
|
positions[0] = 0.0f;
|
||||||
positions[1] = 1.0f;
|
positions[1] = 1.0f;
|
||||||
tempViewLeft.setGradientColors(customColors, positions);
|
tempViewLeft.setGradientColors(customColors, positions);
|
||||||
// 文本放在温度条右侧(默认,可省略)
|
// 文本放在温度条右侧(默认,可省略)
|
||||||
tempViewLeft.setTextPosition(true);
|
tempViewLeft.setTextPosition(true);
|
||||||
// 右边盾值视图初始化(Java7分步写法,禁止链式调用)
|
// 右边盾值视图初始化(Java7分步写法,禁止链式调用)
|
||||||
DunTemperatureView tempViewRight = (DunTemperatureView) findViewById(R.id.dun_temp_view_right);
|
DunTemperatureView tempViewRight = (DunTemperatureView) findViewById(R.id.dun_temp_view_right);
|
||||||
tempViewRight.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
|
tempViewRight.setMaxValue(Rules.getInstance(this).getSettingsModel().getDunTotalCount());
|
||||||
tempViewRight.setCurrentValue(Rules.getInstance(this).getSettingsModel().getDunCurrentCount());
|
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.setGradientColors(customColors, positions);
|
||||||
// 文本放在温度条左侧
|
// 文本放在温度条左侧
|
||||||
tempViewRight.setTextPosition(false);
|
tempViewRight.setTextPosition(false);
|
||||||
LogUtils.d(TAG, "initUIAndLogic: 盾值视图初始化完成");
|
LogUtils.d(TAG, "initUIAndLogic: 盾值视图初始化完成");
|
||||||
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());
|
LogUtils.d(TAG, "initViewPagerAndTabs: ViewPager初始化完成,Fragment数量=" + fragmentList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// ====================== 10. 菜单相关函数区 ======================
|
||||||
* 初始化主服务(保留启动逻辑,移除绑定相关;优化启动方式为静态方法)
|
|
||||||
*/
|
|
||||||
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. 菜单相关函数区 ======================
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
getMenuInflater().inflate(R.menu.toolbar_main, menu);
|
getMenuInflater().inflate(R.menu.toolbar_main, menu);
|
||||||
@@ -392,7 +338,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ====================== 12. ViewPager页面回调区 ======================
|
// ====================== 11. ViewPager页面回调区 ======================
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
|
||||||
|
|
||||||
@@ -408,7 +354,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {}
|
public void onClick(View v) {}
|
||||||
|
|
||||||
// ====================== 13. 工具函数区 ======================
|
// ====================== 12. 工具函数区 ======================
|
||||||
/**
|
/**
|
||||||
* 拨号工具方法(添加空指针防护)
|
* 拨号工具方法(添加空指针防护)
|
||||||
*/
|
*/
|
||||||
@@ -472,11 +418,7 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ====================== 14. 内部类定义区(Java 7 规范,禁止Lambda) ======================
|
// ====================== 13. 内部类定义区(Java 7 规范,禁止Lambda) ======================
|
||||||
/**
|
|
||||||
* 移除 MainServiceConnection 内部类(服务绑定相关,已删除绑定逻辑)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ViewPager适配器(静态内部类减少内存泄漏风险,Java7泛型完整声明)
|
* ViewPager适配器(静态内部类减少内存泄漏风险,Java7泛型完整声明)
|
||||||
*/
|
*/
|
||||||
@@ -506,9 +448,5 @@ public final class MainActivity extends WinBollActivity implements IWinBoLLActiv
|
|||||||
return tabTitleList.get(position);
|
return tabTitleList.get(position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 移除 MyPhoneStateListener 内部类(电话状态监听相关,已删除监听逻辑)
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user