Compare commits
31 Commits
appbase-v1
...
aes-v15.20
| Author | SHA1 | Date | |
|---|---|---|---|
| c6c290dcd2 | |||
| e64f3a3e97 | |||
| 632ecc51d8 | |||
| 58b2cace16 | |||
| 3648fa3361 | |||
| 122122ef80 | |||
| 4caeb83e5e | |||
| f36ee0d9b1 | |||
| fe0b2f97ea | |||
| 43da2bc03a | |||
| d26ef7bf7f | |||
| 6baca2779d | |||
| f0fbdaf121 | |||
| a20f29728e | |||
| 9669fe2a8d | |||
| ff8cb2fb42 | |||
| e42219ac5a | |||
| 42112eb677 | |||
| f3114a8121 | |||
| b5b29b8a77 | |||
| 01b0a7736d | |||
| ed5ab24bd3 | |||
| b5c989b5f9 | |||
| 725b336501 | |||
| d20923eaee | |||
| 57e4f8770b | |||
| 3b313e2362 | |||
| 1e96cd02bc | |||
| 270e21ed23 | |||
| 6412554096 | |||
| 286f8513d4 |
@@ -24,13 +24,13 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId "cc.winboll.studio.aes"
|
||||
minSdkVersion 21
|
||||
minSdkVersion 26
|
||||
targetSdkVersion 30
|
||||
versionCode 1
|
||||
// versionName 更新后需要手动设置
|
||||
// 项目模块目录的 build.gradle 文件的 stageCount=0
|
||||
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
|
||||
versionName "15.15"
|
||||
versionName "15.20"
|
||||
if(true) {
|
||||
versionName = genVersionName("${versionName}")
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Sat Apr 25 04:16:42 HKT 2026
|
||||
stageCount=10
|
||||
#Tue May 12 13:11:09 HKT 2026
|
||||
stageCount=4
|
||||
libraryProject=libaes
|
||||
baseVersion=15.15
|
||||
publishVersion=15.15.9
|
||||
baseVersion=15.20
|
||||
publishVersion=15.20.3
|
||||
buildCount=0
|
||||
baseBetaVersion=15.15.10
|
||||
baseBetaVersion=15.20.4
|
||||
|
||||
16
aes/src/main/res/values-night/styles.xml
Normal file
16
aes/src/main/res/values-night/styles.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="MyAESTheme" parent="AESTheme">
|
||||
<item name="themeDebug">@style/MyDebugActivityTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="MyDebugActivityTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">@color/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">@color/debugTextColor</item>
|
||||
<item name="colorTextBackgound">@color/mainWindowBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,5 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="MyAESTheme" parent="AESTheme">
|
||||
<item name="themeDebug">@style/MyDebugActivityTheme</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
<style name="MyDebugActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">@color/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">@color/debugTextColor</item>
|
||||
<item name="colorTextBackgound">@color/mainWindowBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Mon May 11 16:56:19 HKT 2026
|
||||
stageCount=7
|
||||
#Tue May 12 09:17:15 HKT 2026
|
||||
stageCount=10
|
||||
libraryProject=libappbase
|
||||
baseVersion=15.20
|
||||
publishVersion=15.20.6
|
||||
publishVersion=15.20.9
|
||||
buildCount=0
|
||||
baseBetaVersion=15.20.7
|
||||
baseBetaVersion=15.20.10
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
android:text="关于应用"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onAboutActivity"
|
||||
@@ -43,7 +43,7 @@
|
||||
android:text="应用崩溃测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onCrashTest"
|
||||
@@ -55,7 +55,7 @@
|
||||
android:text="应用日志测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onLogTest"
|
||||
@@ -67,7 +67,7 @@
|
||||
android:text="应用日志测试(新窗口)"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onLogTestNewTask"
|
||||
@@ -79,7 +79,7 @@
|
||||
android:text="应用吐司测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onToastUtilsTest"
|
||||
@@ -93,7 +93,7 @@
|
||||
android:text="多开窗口"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onMultiInstance"
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
android:text="返回"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onBack"
|
||||
@@ -47,7 +47,7 @@
|
||||
android:text="测试崩溃"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onTestCrash"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
android:text="关于应用"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onAboutActivity"
|
||||
@@ -43,7 +43,7 @@
|
||||
android:text="应用崩溃测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onCrashTest"
|
||||
@@ -55,7 +55,7 @@
|
||||
android:text="应用日志测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onLogTest"
|
||||
@@ -67,7 +67,7 @@
|
||||
android:text="应用日志测试(新窗口)"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onLogTestNewTask"
|
||||
@@ -79,7 +79,7 @@
|
||||
android:text="应用吐司测试"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onToastUtilsTest"
|
||||
@@ -93,7 +93,7 @@
|
||||
android:text="多开窗口"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/buttonBackgroundColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:paddingVertical="12dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:onClick="onMultiInstance"
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
|
||||
<style name="MyDebugActivityTheme" parent="DebugActivityTheme">
|
||||
<item name="colorTittle">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/buttonBackgroundColor</item>
|
||||
<item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item>
|
||||
<item name="colorText">?attr/debugTextColor</item>
|
||||
<item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -6,8 +6,9 @@
|
||||
|
||||
<style name="MyDebugActivityTheme" parent="DebugActivityTheme">
|
||||
<item name="colorTittle">?attr/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/buttonBackgroundColor</item>
|
||||
<item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item>
|
||||
<item name="colorText">?attr/debugTextColor</item>
|
||||
<item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -93,11 +93,12 @@ allprojects {
|
||||
}
|
||||
|
||||
subprojects {
|
||||
// 1. 对纯 Java 模块的 JavaCompile 任务配置(强制Java 7)
|
||||
// 1. 对纯 Java 模块的 JavaCompile 任务配置(升级为 Java 11)
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs << "-parameters"
|
||||
sourceCompatibility = JavaVersion.VERSION_1_7
|
||||
targetCompatibility = JavaVersion.VERSION_1_7
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
// 可选:确保编码一致
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ android {
|
||||
buildToolsVersion "30.0.3"
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
minSdkVersion 26
|
||||
targetSdkVersion 30
|
||||
}
|
||||
|
||||
@@ -27,8 +27,6 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// 权限请求框架:https://github.com/getActivity/XXPermissions
|
||||
api 'com.github.getActivity:XXPermissions:18.63'
|
||||
// 下拉控件
|
||||
api 'com.baoyz.pullrefreshlayout:library:1.2.0'
|
||||
// 拼音搜索
|
||||
@@ -63,7 +61,7 @@ dependencies {
|
||||
//annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
|
||||
|
||||
// WinBoLL库 nexus.winboll.cc 地址
|
||||
api 'cc.winboll.studio:libappbase:15.15.19'
|
||||
api 'cc.winboll.studio:libappbase:15.20.9'
|
||||
// 备用库 jitpack.io 地址
|
||||
//api 'com.github.ZhanGSKen:APPBase:appbase-v15.15.3'
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Sat Apr 25 04:16:30 HKT 2026
|
||||
stageCount=10
|
||||
#Tue May 12 13:11:09 HKT 2026
|
||||
stageCount=4
|
||||
libraryProject=libaes
|
||||
baseVersion=15.15
|
||||
publishVersion=15.15.9
|
||||
baseVersion=15.20
|
||||
publishVersion=15.20.3
|
||||
buildCount=0
|
||||
baseBetaVersion=15.15.10
|
||||
baseBetaVersion=15.20.4
|
||||
|
||||
@@ -12,6 +12,8 @@ import androidx.appcompat.widget.Toolbar;
|
||||
import cc.winboll.studio.libaes.R;
|
||||
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||
import cc.winboll.studio.libaes.utils.AESThemeUtil;
|
||||
import cc.winboll.studio.libaes.views.ASupportToolbar;
|
||||
import cc.winboll.studio.libappbase.LogUtils;
|
||||
|
||||
public class TestASupportToolbarActivity extends AppCompatActivity implements IWinBoLLActivity {
|
||||
|
||||
@@ -29,14 +31,17 @@ public class TestASupportToolbarActivity extends AppCompatActivity implements IW
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
LogUtils.d(TAG, "onCreate() start");
|
||||
AESThemeUtil.applyAppTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_testasupporttoolbar);
|
||||
LogUtils.d(TAG, "setContentView() done");
|
||||
Toolbar toolbar = findViewById(R.id.activitytestasupporttoolbarASupportToolbar1);
|
||||
LogUtils.d(TAG, "findViewById() done, toolbar=" + toolbar.getClass().getSimpleName());
|
||||
setSupportActionBar(toolbar);
|
||||
LogUtils.d(TAG, "setSupportActionBar() done");
|
||||
getSupportActionBar().setTitle(TAG);
|
||||
|
||||
LogUtils.d(TAG, "setTitle() done");
|
||||
LogUtils.d(TAG, "onCreate() end");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
33
libaes/src/main/res/values-night/colors.xml
Normal file
33
libaes/src/main/res/values-night/colors.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<color name="colorTextColor">#FFFFFFFF</color>
|
||||
<color name="colorPrimary">#FF03AB4E</color>
|
||||
<color name="colorPrimaryDark">#FF027C39</color>
|
||||
<color name="colorAccent">#FF3DDC84</color>
|
||||
<color name="colorText">#FFFFFB8D</color>
|
||||
<color name="colorToastFrame">#FFA9A9A9</color>
|
||||
<color name="colorToastShadow">#FF000000</color>
|
||||
<color name="colorToastBackgroung">#FFFFFFFF</color>
|
||||
<color name="colorAToolbarStartColor">#FF7D3F12</color>
|
||||
<color name="colorAToolbarCenterColor">#FFCC6E2B</color>
|
||||
<color name="colorAToolbarEndColor">#FFF4B98F</color>
|
||||
|
||||
<color name="colorACardShadow">@color/colorPrimaryDark</color>
|
||||
<color name="colorACardFrame">@color/colorPrimary</color>
|
||||
<color name="colorACardBackgroung">@color/colorAccent</color>
|
||||
|
||||
<color name="colorATickProgressBarBackgroung">@color/colorAccent</color>
|
||||
<color name="colorATickProgressBarProgress">@color/colorPrimary</color>
|
||||
|
||||
<color name="colorOHPCTSBackground">@color/colorAccent</color>
|
||||
<color name="colorOHPCTSSecondaryProgress">@color/colorPrimary</color>
|
||||
<color name="colorOHPCTSProgress">@color/colorPrimaryDark</color>
|
||||
|
||||
<color name="toolbarBackgroundColor">#FF03AB4E</color>
|
||||
<color name="toolbarTextColor">#FFFFFFFF</color>
|
||||
<color name="mainWindowBackgroundColor">#FF2C2C2C</color>
|
||||
<color name="mainWindowTextColor">#FFFFFFFF</color>
|
||||
<color name="debugTextColor">#FFFF0000</color>
|
||||
|
||||
</resources>
|
||||
112
libaes/src/main/res/values-night/styles.xml
Normal file
112
libaes/src/main/res/values-night/styles.xml
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="AESTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="themeDebug">@style/DebugActivityTheme</item>
|
||||
<item name="aboutViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="aboutViewTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="aboutViewTitleColor">@color/mainWindowTextColor</item>
|
||||
<item name="aboutViewDividerColor">@color/mainWindowTextColor</item>
|
||||
<item name="dialogBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="dialogTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
<item name="textViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="textViewTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="editTextBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="editTextTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="scrollViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="activityBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="activityTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="mainWindowBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="mainWindowTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="mainWindowDarkBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="mainWindowDarkTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
|
||||
<item name="aToolbar">@style/AESAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/AESASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="DebugActivityTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">@color/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">@color/debugTextColor</item>
|
||||
<item name="colorTextBackgound">@color/mainWindowBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
|
||||
<style name="AESAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">@color/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">@color/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">@color/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="AESASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">@color/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">@color/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">@color/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="DepthAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FF0065EC</item>
|
||||
<item name="colorPrimaryDark">#FF004DB4</item>
|
||||
<item name="colorAccent">#FF4A97FF</item>
|
||||
</style>
|
||||
|
||||
<style name="SkyAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FF00A6FF</item>
|
||||
<item name="colorPrimaryDark">#FF007ABB</item>
|
||||
<item name="colorAccent">#FF84D4FF</item>
|
||||
</style>
|
||||
|
||||
<style name="GoldenAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FFF0CA11</item>
|
||||
<item name="colorPrimaryDark">#FFD3AF00</item>
|
||||
<item name="colorAccent">#FFFFE35C</item>
|
||||
</style>
|
||||
|
||||
<style name="BearingAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FF840FFF</item>
|
||||
<item name="colorPrimaryDark">#FF6900D7</item>
|
||||
<item name="colorAccent">#FFBA78FF</item>
|
||||
</style>
|
||||
|
||||
<style name="MemorAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FFFF00F5</item>
|
||||
<item name="colorPrimaryDark">#FFE500DC</item>
|
||||
<item name="colorAccent">#FFFF76FA</item>
|
||||
</style>
|
||||
|
||||
<style name="TaoAESTheme" parent="AESTheme">
|
||||
<item name="colorPrimary">#FFACACAC</item>
|
||||
<item name="colorPrimaryDark">#FF898989</item>
|
||||
<item name="colorAccent">#FFD8D8D8</item>
|
||||
</style>
|
||||
|
||||
<style name="NormalDialogStyle" parent="Theme.AppCompat.Dialog">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<item name="android:windowIsTranslucent">false</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@style/cornerDialogAnim</item>
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
</style>
|
||||
|
||||
<style name="centerDialogAnim" parent="android:Animation">
|
||||
<item name="@android:windowEnterAnimation">@anim/normal_dialog_enter_center</item>
|
||||
<item name="@android:windowExitAnimation">@anim/normal_dialog_exit_center</item>
|
||||
</style>
|
||||
|
||||
<style name="cornerDialogAnim" parent="android:Animation">
|
||||
<item name="@android:windowEnterAnimation">@anim/normal_dialog_enter_corner</item>
|
||||
<item name="@android:windowExitAnimation">@anim/normal_dialog_exit_corner</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
@@ -43,6 +43,7 @@
|
||||
<attr name="attrASupportToolbarStartColor"/>
|
||||
<attr name="attrASupportToolbarCenterColor"/>
|
||||
<attr name="attrASupportToolbarEndColor"/>
|
||||
<attr name="android:background"/>
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="AButton">
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<!-- 默认方案 -->
|
||||
|
||||
<color name="colorTextColor">#FF000000</color>
|
||||
<color name="colorPrimary">#FF03AB4E</color>
|
||||
<color name="colorPrimaryDark">#FF027C39</color>
|
||||
<color name="colorAccent">#FF3DDC84</color>
|
||||
<color name="colorText">#FFFFFB8D</color>
|
||||
<color name="colorText">#FFFFFB8D</color>
|
||||
<color name="colorToastFrame">#FFA9A9A9</color>
|
||||
<color name="colorToastShadow">#FF000000</color>
|
||||
<color name="colorToastBackgroung">#FFFFFFFF</color>
|
||||
@@ -24,22 +24,10 @@
|
||||
<color name="colorOHPCTSSecondaryProgress">@color/colorPrimary</color>
|
||||
<color name="colorOHPCTSProgress">@color/colorPrimaryDark</color>
|
||||
|
||||
<!-- -->
|
||||
<color name="toolbarBackgroundColor">#FF03AB4E</color>
|
||||
<color name="toolbarTextColor">#FFFFFFFF</color>
|
||||
<color name="mainWindowBackgroundColor">#FFFFFFFF</color>
|
||||
<color name="mainWindowTextColor">#FF000000</color>
|
||||
<color name="debugTextColor">#FFFF0000</color>
|
||||
|
||||
<!-- 调试方案
|
||||
<color name="colorPrimary">#FF727272</color>
|
||||
<color name="colorPrimaryDark">#FF444444</color>
|
||||
<color name="colorAccent">#FF9EA19F</color>
|
||||
|
||||
<color name="colorAToolbarStartColor">#FF4776EB</color>
|
||||
<color name="colorAToolbarCenterColor">#FF0D4BE7</color>
|
||||
<color name="colorAToolbarEndColor">#FF8FA7E3</color>
|
||||
|
||||
<color name="colorACardShadow">#FF22A200</color>
|
||||
<color name="colorACardFrame">#FF3FCC19</color>
|
||||
<color name="colorACardBackgroung">#FF88F16B</color>
|
||||
|
||||
<color name="colorATickProgressBarBackgroung">#FF6DC4E2</color>
|
||||
<color name="colorATickProgressBarProgress">#FF22B0E1</color>
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
@@ -1,255 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="AESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF18B05C</item>
|
||||
<item name="colorPrimaryDark">#FF008C3F</item>
|
||||
<item name="colorAccent">#FF24DC77</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="themeDebug">@style/DebugActivityTheme</item>
|
||||
<item name="aboutViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="aboutViewTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="aboutViewTitleColor">@color/mainWindowTextColor</item>
|
||||
<item name="aboutViewDividerColor">@color/mainWindowTextColor</item>
|
||||
<item name="dialogBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="dialogTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
<item name="textViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="textViewTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="editTextBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="editTextTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="scrollViewBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="activityBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="activityTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="mainWindowBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="mainWindowTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="mainWindowDarkBackgroundColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="mainWindowDarkTextColor">@color/mainWindowTextColor</item>
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
|
||||
<item name="aToolbar">@style/AESAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/AESASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="DebugActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">@color/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">@color/debugTextColor</item>
|
||||
<item name="colorTextBackgound">@color/mainWindowBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
</style>
|
||||
|
||||
<style name="AESAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
<item name="attrAToolbarTitleTextColor">@color/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">@color/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">@color/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="AESASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
<item name="attrASupportToolbarTitleTextColor">@color/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">@color/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">@color/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="DepthAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF0065EC</item>
|
||||
<item name="colorPrimaryDark">#FF004DB4</item>
|
||||
<item name="colorAccent">#FF4A97FF</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
<style name="SkyAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF00A6FF</item>
|
||||
<item name="colorPrimaryDark">#FF007ABB</item>
|
||||
<item name="colorAccent">#FF84D4FF</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
<style name="GoldenAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FFF0CA11</item>
|
||||
<item name="colorPrimaryDark">#FFD3AF00</item>
|
||||
<item name="colorAccent">#FFFFE35C</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="BearingAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF840FFF</item>
|
||||
<item name="colorPrimaryDark">#FF6900D7</item>
|
||||
<item name="colorAccent">#FFBA78FF</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
<style name="MemorAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FFFF00F5</item>
|
||||
<item name="colorPrimaryDark">#FFE500DC</item>
|
||||
<item name="colorAccent">#FFFF76FA</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
<style name="TaoAESTheme" parent="AESTheme">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FFACACAC</item>
|
||||
<item name="colorPrimaryDark">#FF898989</item>
|
||||
<item name="colorAccent">#FFD8D8D8</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
</style>
|
||||
|
||||
<!--<style name="AESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/AESAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/AESASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="AESAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="AESASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>-->
|
||||
|
||||
<!--<style name="DepthAESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF2566FE</item>
|
||||
<item name="colorPrimaryDark">#FF1359FF</item>
|
||||
<item name="colorAccent">#FF8BAEFF</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/DepthAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/DepthASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="DepthAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="DepthASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="SkyAESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF1E98D4</item>
|
||||
<item name="colorPrimaryDark">#FF046A9C</item>
|
||||
<item name="colorAccent">#FF8CD9FF</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/SkyAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/SkyASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="SkyAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="SkyASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="GoldenAESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FFFFE22A</item>
|
||||
<item name="colorPrimaryDark">#FFAE9600</item>
|
||||
<item name="colorAccent">#FFFFED78</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/GoldenAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/GoldenASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="GoldenAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="GoldenASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="MemorAESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FFCE1ED4</item>
|
||||
<item name="colorPrimaryDark">#FFB500BC</item>
|
||||
<item name="colorAccent">#FFE653EB</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/MemorAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/MemorASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="MemorAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="MemorASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="TaoAESTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorTextColor">#FF000000</item>
|
||||
<item name="colorPrimary">#FF9F9F9F</item>
|
||||
<item name="colorPrimaryDark">#FF5E5E5E</item>
|
||||
<item name="colorAccent">#FFD9D9D9</item>
|
||||
<item name="android:textColor">#FF000000</item>
|
||||
<item name="aToolbar">@style/TaoAToolbar</item>
|
||||
<item name="aSupportToolbar">@style/TaoASupportToolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="TaoAToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrAToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrAToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrAToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>
|
||||
|
||||
<style name="TaoASupportToolbar">
|
||||
<item name="attrASupportToolbarTitleTextColor">?attr/colorTextColor</item>
|
||||
<item name="attrASupportToolbarStartColor">?attr/colorPrimaryDark</item>
|
||||
<item name="attrASupportToolbarCenterColor">?attr/colorPrimary</item>
|
||||
<item name="attrASupportToolbarEndColor">?attr/colorAccent</item>
|
||||
</style>-->
|
||||
|
||||
<!--<style name="AToolbar">
|
||||
<item name="attrAToolbarTitleTextColor">#FF2DDA27</item>
|
||||
<item name="attrAToolbarStartColor">#FF2DDA27</item>
|
||||
<item name="attrAToolbarCenterColor">#FF2DDA27</item>
|
||||
<item name="attrAToolbarEndColor">#FF2DDA27</item>
|
||||
</style>-->
|
||||
|
||||
<!--对话框的样式-->
|
||||
<style name="NormalDialogStyle">
|
||||
<!--对话框背景 -->
|
||||
<style name="NormalDialogStyle" parent="Theme.AppCompat.Light.Dialog">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<!--边框 -->
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<!--没有标题 -->
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<!-- 是否浮现在Activity之上 -->
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<!--背景透明 -->
|
||||
<item name="android:windowIsTranslucent">false</item>
|
||||
<!-- 是否有覆盖 -->
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<!--进出的显示动画 -->
|
||||
<item name="android:windowAnimationStyle">@style/cornerDialogAnim</item>
|
||||
<!--背景变暗-->
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
</style>
|
||||
<!--对话框动画,中间弹出-->
|
||||
|
||||
<style name="centerDialogAnim" parent="android:Animation">
|
||||
<item name="@android:windowEnterAnimation">@anim/normal_dialog_enter_center</item>
|
||||
<item name="@android:windowExitAnimation">@anim/normal_dialog_exit_center</item>
|
||||
</style>
|
||||
<!--对话框动画,角落弹出-->
|
||||
|
||||
<style name="cornerDialogAnim" parent="android:Animation">
|
||||
<item name="@android:windowEnterAnimation">@anim/normal_dialog_enter_corner</item>
|
||||
<item name="@android:windowExitAnimation">@anim/normal_dialog_exit_corner</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Mon May 11 16:56:19 HKT 2026
|
||||
stageCount=7
|
||||
#Tue May 12 09:16:45 HKT 2026
|
||||
stageCount=10
|
||||
libraryProject=libappbase
|
||||
baseVersion=15.20
|
||||
publishVersion=15.20.6
|
||||
publishVersion=15.20.9
|
||||
buildCount=0
|
||||
baseBetaVersion=15.20.7
|
||||
baseBetaVersion=15.20.10
|
||||
|
||||
@@ -47,6 +47,13 @@
|
||||
|
||||
<activity android:name="cc.winboll.studio.libappbase.activities.FTPBackupsActivity"/>
|
||||
|
||||
<activity
|
||||
android:name=".utils.ShareLogActivity"
|
||||
android:label="ShareLogActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@android:style/Theme.NoDisplay"/>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -8,6 +8,7 @@ package cc.winboll.studio.libappbase;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.text.Editable;
|
||||
@@ -248,7 +249,10 @@ public class LogView extends RelativeLayout {
|
||||
}
|
||||
mSelectAllTAGCheckBox.setLayoutParams(layoutParams2);
|
||||
//mSelectAllTAGCheckBox.setPadding(0,0,0,0);
|
||||
mSelectAllTAGCheckBox.setTextColor(mContext.getResources().getColor(R.color.white));
|
||||
TypedArray ta1 = mContext.obtainStyledAttributes(new int[] { R.attr.toolbarTextColor });
|
||||
int toolbarTextColor1 = ta1.getColor(0, mContext.getResources().getColor(R.color.white));
|
||||
ta1.recycle();
|
||||
mSelectAllTAGCheckBox.setTextColor(toolbarTextColor1);
|
||||
mSelectAllTAGCheckBox.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -502,10 +506,17 @@ public class LogView extends RelativeLayout {
|
||||
}
|
||||
holder.tvText.setLayoutParams(layoutParams);
|
||||
holder.tvText.setPadding(0,0,0,0);
|
||||
holder.tvText.setTextColor(mContext.getResources().getColor(R.color.white));
|
||||
TypedArray ta2 = mContext.obtainStyledAttributes(new int[] { R.attr.toolbarTextColor });
|
||||
int toolbarTextColor2 = ta2.getColor(0, mContext.getResources().getColor(R.color.white));
|
||||
ta2.recycle();
|
||||
holder.tvText.setTextColor(toolbarTextColor2);
|
||||
holder.cbChecked.setChecked(item.isChecked());
|
||||
holder.cbChecked.setLayoutParams(layoutParams);
|
||||
holder.cbChecked.setPadding(0,0,0,0);
|
||||
TypedArray ta3 = mContext.obtainStyledAttributes(new int[] { R.attr.toolbarTextColor });
|
||||
int toolbarTextColor3 = ta3.getColor(0, mContext.getResources().getColor(R.color.white));
|
||||
ta3.recycle();
|
||||
holder.cbChecked.setTextColor(toolbarTextColor3);
|
||||
holder.cbChecked.setOnClickListener(new View.OnClickListener(){
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
package cc.winboll.studio.libappbase.utils;
|
||||
|
||||
import android.app.Application;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import cc.winboll.studio.libappbase.CrashHandler;
|
||||
import cc.winboll.studio.libappbase.LogUtils;
|
||||
import cc.winboll.studio.libappbase.R;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/**
|
||||
* 应用崩溃处理通知实用工具集(类库兼容版)
|
||||
@@ -18,7 +25,7 @@ import cc.winboll.studio.libappbase.LogUtils;
|
||||
* 适配说明:移除固定包名依赖,通过外部传入宿主包名,支持任意应用集成使用
|
||||
* @Author 豆包&ZhanGSKen<zhangsken@qq.com>
|
||||
* @CreateTime 2025/11/29 21:12:00
|
||||
* @EditTime 2026/05/11 15:38:21
|
||||
* @EditTime 2026/05/11 21:55:00
|
||||
*/
|
||||
public class CrashHandleNotifyUtils {
|
||||
|
||||
@@ -34,8 +41,24 @@ public class CrashHandleNotifyUtils {
|
||||
private static final int API_LEVEL_ANDROID_12 = 31;
|
||||
/** PendingIntent.FLAG_IMMUTABLE 常量值(API 31+) */
|
||||
private static final int FLAG_IMMUTABLE = 0x00000040;
|
||||
/** 通知内容最大行数(控制在3行,超出部分省略) */
|
||||
private static final int NOTIFICATION_MAX_LINES = 3;
|
||||
/** 通知摘要最大长度 */
|
||||
private static final int SUMMARY_MAX_LENGTH = 200;
|
||||
/** 分享日志请求码 */
|
||||
private static final int REQUEST_CODE_SHARE_LOG = 0x002;
|
||||
/** 缓存崩溃日志子目录 */
|
||||
private static final String CRASH_LOG_CACHE_SUBDIR = "crashnotify";
|
||||
/** 缓存崩溃日志文件名 */
|
||||
private static final String CRASH_LOG_CACHE_FILENAME = "crash_log.txt";
|
||||
|
||||
// ====================== 静态成员 ======================
|
||||
private static String sHostPackageName = "";
|
||||
private static String sCrashLogCacheFilePath = "";
|
||||
|
||||
// ====================== 正则表达式定义 ======================
|
||||
private static final String REGEX_EXCEPTION_TYPE = "([\\w.]+Exception|[\\w.]+Error)";
|
||||
private static final String REGEX_EXCEPTION_MESSAGE = "(?<=:\\s)(.+?)(?=\\n|\\r|$)";
|
||||
private static final String REGEX_STACK_TRACE = "\\s+at\\s+([\\w.$]+)\\.([\\w<>]+)\\(([^:]+\\.java):(\\d+)\\)";
|
||||
private static final String REGEX_CAUSE = "(?<=Caused by:\\s)" + REGEX_EXCEPTION_TYPE + "\\s*:";
|
||||
|
||||
// ====================== 对外核心方法 ======================
|
||||
/**
|
||||
@@ -45,18 +68,29 @@ public class CrashHandleNotifyUtils {
|
||||
* @param errorLog 崩溃日志内容
|
||||
* @param reportCrashActivity 崩溃详情跳转Activity类
|
||||
*/
|
||||
public static void handleUncaughtException(final Application hostApp,
|
||||
final String hostPackageName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity) {
|
||||
public static void handleUncaughtException(final android.app.Application hostApp,
|
||||
final String hostPackageName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity) {
|
||||
LogUtils.d(TAG, "handleUncaughtException 进入方法");
|
||||
// 校验入参
|
||||
if (hostApp == null || TextUtils.isEmpty(hostPackageName) || TextUtils.isEmpty(errorLog)) {
|
||||
LogUtils.e(TAG, "handleUncaughtException 参数为空校验不通过");
|
||||
return;
|
||||
}
|
||||
sHostPackageName = hostPackageName;
|
||||
final String hostAppName = getHostAppName(hostApp, hostPackageName);
|
||||
sendCrashNotification(hostApp, hostPackageName, hostAppName, errorLog, reportCrashActivity);
|
||||
final String crashLogFilePath = saveCrashLogToCache(hostApp, errorLog);
|
||||
if (TextUtils.isEmpty(crashLogFilePath)) {
|
||||
LogUtils.e(TAG, "保存崩溃日志到缓存文件失败");
|
||||
return;
|
||||
}
|
||||
sCrashLogCacheFilePath = crashLogFilePath;
|
||||
final Intent shareIntent = new Intent(hostApp, ShareLogActivity.class);
|
||||
shareIntent.putExtra(ShareLogActivity.EXTRA_CRASH_LOG_FILEPATH, crashLogFilePath);
|
||||
shareIntent.putExtra(ShareLogActivity.EXTRA_CRASH_LOG_SUBJECT, "崩溃日志");
|
||||
shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
final PendingIntent sharePendingIntent = createSharePendingIntent(hostApp, shareIntent);
|
||||
sendCrashNotification(hostApp, hostPackageName, hostAppName, errorLog, reportCrashActivity, sharePendingIntent);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,9 +99,9 @@ public class CrashHandleNotifyUtils {
|
||||
* @param intent 携带崩溃信息Intent
|
||||
* @param reportCrashActivity 崩溃详情Activity
|
||||
*/
|
||||
public static void handleUncaughtException(final Application hostApp,
|
||||
final Intent intent,
|
||||
final Class<?> reportCrashActivity) {
|
||||
public static void handleUncaughtException(final android.app.Application hostApp,
|
||||
final Intent intent,
|
||||
final Class<?> reportCrashActivity) {
|
||||
LogUtils.d(TAG, "handleUncaughtException 重载方法进入");
|
||||
String hostPackageName = intent.getStringExtra("EXTRA_HOST_PACKAGE_NAME");
|
||||
if (TextUtils.isEmpty(hostPackageName)) {
|
||||
@@ -78,6 +112,16 @@ public class CrashHandleNotifyUtils {
|
||||
handleUncaughtException(hostApp, hostPackageName, errorLog, reportCrashActivity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 资源释放
|
||||
* @param hostContext 宿主上下文
|
||||
*/
|
||||
public static void release(final Context hostContext) {
|
||||
LogUtils.d(TAG, "release 执行资源释放");
|
||||
sHostPackageName = "";
|
||||
sCrashLogCacheFilePath = "";
|
||||
}
|
||||
|
||||
// ====================== 内部工具方法 ======================
|
||||
/**
|
||||
* 获取宿主应用名称
|
||||
@@ -88,14 +132,87 @@ public class CrashHandleNotifyUtils {
|
||||
private static String getHostAppName(final Context hostContext, final String hostPackageName) {
|
||||
try {
|
||||
return hostContext.getPackageManager()
|
||||
.getApplicationLabel(hostContext.getPackageManager()
|
||||
.getApplicationInfo(hostPackageName, 0)).toString();
|
||||
.getApplicationLabel(hostContext.getPackageManager()
|
||||
.getApplicationInfo(hostPackageName, 0)).toString();
|
||||
} catch (Exception e) {
|
||||
LogUtils.e(TAG, "获取宿主应用名称失败", e);
|
||||
return "未知应用";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存崩溃日志到缓存文件
|
||||
* @param hostContext 宿主上下文
|
||||
* @param crashLog 崩溃日志内容
|
||||
* @return 缓存文件路径,失败返回空字符串
|
||||
*/
|
||||
private static String saveCrashLogToCache(final Context hostContext, final String crashLog) {
|
||||
if (hostContext == null || TextUtils.isEmpty(crashLog)) {
|
||||
return "";
|
||||
}
|
||||
BufferedReader reader = null;
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
final File cacheDir = new File(hostContext.getCacheDir(), CRASH_LOG_CACHE_SUBDIR);
|
||||
if (!cacheDir.exists()) {
|
||||
cacheDir.mkdirs();
|
||||
}
|
||||
final File cacheFile = new File(cacheDir, CRASH_LOG_CACHE_FILENAME);
|
||||
if (cacheFile.exists()) {
|
||||
cacheFile.delete();
|
||||
}
|
||||
cacheFile.createNewFile();
|
||||
fos = new FileOutputStream(cacheFile);
|
||||
fos.write(crashLog.getBytes("UTF-8"));
|
||||
fos.flush();
|
||||
LogUtils.d(TAG, "saveCrashLogToCache 保存崩溃日志到缓存: " + cacheFile.getAbsolutePath());
|
||||
return cacheFile.getAbsolutePath();
|
||||
} catch (Exception e) {
|
||||
LogUtils.e(TAG, "saveCrashLogToCache 异常", e);
|
||||
return "";
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try { reader.close(); } catch (Exception e) {}
|
||||
}
|
||||
if (fos != null) {
|
||||
try { fos.close(); } catch (Exception e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取缓存的崩溃日志文件内容
|
||||
* @param hostContext 宿主上下文
|
||||
* @return 日志内容,失败返回空字符串
|
||||
*/
|
||||
private static String readCachedCrashLog(final Context hostContext) {
|
||||
if (hostContext == null || TextUtils.isEmpty(sCrashLogCacheFilePath)) {
|
||||
return "";
|
||||
}
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
final File cacheFile = new File(sCrashLogCacheFilePath);
|
||||
if (!cacheFile.exists()) {
|
||||
LogUtils.w(TAG, "readCachedCrashLog 缓存文件不存在");
|
||||
return "";
|
||||
}
|
||||
reader = new BufferedReader(new InputStreamReader(new FileInputStream(cacheFile), "UTF-8"));
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
sb.append(line).append("\n");
|
||||
}
|
||||
return sb.toString();
|
||||
} catch (Exception e) {
|
||||
LogUtils.e(TAG, "readCachedCrashLog 异常", e);
|
||||
return "";
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try { reader.close(); } catch (Exception e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送崩溃系统通知
|
||||
* @param hostContext 宿主上下文
|
||||
@@ -103,45 +220,65 @@ public class CrashHandleNotifyUtils {
|
||||
* @param hostAppName 宿主应用名
|
||||
* @param errorLog 崩溃日志
|
||||
* @param reportCrashActivity 跳转Activity
|
||||
* @param sharePendingIntent 分享日志PendingIntent
|
||||
*/
|
||||
private static void sendCrashNotification(final Context hostContext,
|
||||
final String hostPackageName,
|
||||
final String hostAppName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity) {
|
||||
final String hostPackageName,
|
||||
final String hostAppName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity,
|
||||
final PendingIntent sharePendingIntent) {
|
||||
final NotificationManager notificationManager =
|
||||
(NotificationManager) hostContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
(NotificationManager) hostContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if (notificationManager == null) {
|
||||
LogUtils.e(TAG, "获取NotificationManager失败");
|
||||
return;
|
||||
}
|
||||
// 8.0以上创建通知渠道
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
createCrashNotifyChannel(hostContext, notificationManager);
|
||||
}
|
||||
final PendingIntent jumpIntent = getGlobalCrashPendingIntent(hostContext,
|
||||
hostPackageName, errorLog, reportCrashActivity);
|
||||
hostPackageName, errorLog, reportCrashActivity);
|
||||
if (jumpIntent == null) {
|
||||
LogUtils.e(TAG, "构建跳转PendingIntent失败");
|
||||
return;
|
||||
}
|
||||
final Notification notification = buildNotification(hostContext, hostAppName, errorLog, jumpIntent);
|
||||
final Notification notification = buildNotification(hostContext, hostPackageName, hostAppName, errorLog, jumpIntent, sharePendingIntent);
|
||||
notificationManager.notify(CRASH_NOTIFY_ID, notification);
|
||||
LogUtils.d(TAG, "崩溃通知发送成功,宿主包名:" + hostPackageName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建分享日志PendingIntent
|
||||
* @param hostContext 宿主上下文
|
||||
* @param shareIntent 分享意图
|
||||
* @return PendingIntent实例
|
||||
*/
|
||||
private static PendingIntent createSharePendingIntent(final Context hostContext, final Intent shareIntent) {
|
||||
int flags = PendingIntent.FLAG_UPDATE_CURRENT;
|
||||
if (Build.VERSION.SDK_INT >= API_LEVEL_ANDROID_12) {
|
||||
flags |= FLAG_IMMUTABLE;
|
||||
}
|
||||
return PendingIntent.getActivity(
|
||||
hostContext,
|
||||
REQUEST_CODE_SHARE_LOG,
|
||||
shareIntent,
|
||||
flags
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建通知渠道(适配Android O及以上)
|
||||
* @param hostContext 宿主上下文
|
||||
* @param notificationManager 通知管理器
|
||||
*/
|
||||
private static void createCrashNotifyChannel(final Context hostContext,
|
||||
final NotificationManager notificationManager) {
|
||||
final NotificationManager notificationManager) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
android.app.NotificationChannel channel = new android.app.NotificationChannel(
|
||||
CRASH_NOTIFY_CHANNEL_ID,
|
||||
CRASH_NOTIFY_CHANNEL_NAME,
|
||||
NotificationManager.IMPORTANCE_DEFAULT
|
||||
CRASH_NOTIFY_CHANNEL_ID,
|
||||
CRASH_NOTIFY_CHANNEL_NAME,
|
||||
NotificationManager.IMPORTANCE_DEFAULT
|
||||
);
|
||||
channel.setDescription("应用崩溃通知(由 WinBoLL Studio 类库提供,点击查看详情)");
|
||||
notificationManager.createNotificationChannel(channel);
|
||||
@@ -158,9 +295,9 @@ public class CrashHandleNotifyUtils {
|
||||
* @return PendingIntent实例
|
||||
*/
|
||||
private static PendingIntent getGlobalCrashPendingIntent(final Context hostContext,
|
||||
final String hostPackageName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity) {
|
||||
final String hostPackageName,
|
||||
final String errorLog,
|
||||
final Class<?> reportCrashActivity) {
|
||||
try {
|
||||
final Intent crashIntent = new Intent(hostContext, reportCrashActivity);
|
||||
crashIntent.setPackage(hostPackageName);
|
||||
@@ -172,10 +309,10 @@ public class CrashHandleNotifyUtils {
|
||||
flags |= FLAG_IMMUTABLE;
|
||||
}
|
||||
return PendingIntent.getActivity(
|
||||
hostContext,
|
||||
CRASH_NOTIFY_ID,
|
||||
crashIntent,
|
||||
flags
|
||||
hostContext,
|
||||
CRASH_NOTIFY_ID,
|
||||
crashIntent,
|
||||
flags
|
||||
);
|
||||
} catch (Exception e) {
|
||||
LogUtils.e(TAG, "构建跳转Intent异常", e);
|
||||
@@ -186,34 +323,40 @@ public class CrashHandleNotifyUtils {
|
||||
/**
|
||||
* 构建Notification通知实例
|
||||
* @param hostContext 宿主上下文
|
||||
* @param hostPackageName 宿主包名
|
||||
* @param hostAppName 宿主应用名
|
||||
* @param errorLog 崩溃日志
|
||||
* @param jumpIntent 点击跳转意图
|
||||
* @param shareIntent 分享日志意图
|
||||
* @return 构建好的Notification
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
private static Notification buildNotification(final Context hostContext,
|
||||
final String hostAppName,
|
||||
final String errorLog,
|
||||
final PendingIntent jumpIntent) {
|
||||
final String hostPackageName,
|
||||
final String hostAppName,
|
||||
final String errorLog,
|
||||
final PendingIntent jumpIntent,
|
||||
final PendingIntent shareIntent) {
|
||||
Notification.Builder builder = new Notification.Builder(hostContext);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
builder.setChannelId(CRASH_NOTIFY_CHANNEL_ID);
|
||||
}
|
||||
Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle();
|
||||
bigTextStyle.setSummaryText("日志已省略,下拉查看完整内容");
|
||||
bigTextStyle.bigText(errorLog);
|
||||
final String briefInfo = extractBriefInfo(errorLog);
|
||||
final Notification.BigTextStyle bigTextStyle = new Notification.BigTextStyle();
|
||||
bigTextStyle.setBigContentTitle(hostAppName + " 崩溃");
|
||||
bigTextStyle.bigText(briefInfo);
|
||||
bigTextStyle.setSummaryText("点击查看详情");
|
||||
builder.setStyle(bigTextStyle);
|
||||
|
||||
builder.setSmallIcon(hostContext.getApplicationInfo().icon)
|
||||
.setContentTitle(hostAppName + " 崩溃")
|
||||
.setContentText(getShortContent(errorLog))
|
||||
.setContentIntent(jumpIntent)
|
||||
.setAutoCancel(true)
|
||||
.setWhen(System.currentTimeMillis())
|
||||
.setPriority(Notification.PRIORITY_DEFAULT);
|
||||
|
||||
.setContentTitle(hostAppName + " 崩溃")
|
||||
.setContentText(briefInfo.split("\n")[0])
|
||||
.setContentIntent(jumpIntent)
|
||||
.setAutoCancel(true)
|
||||
.setWhen(System.currentTimeMillis())
|
||||
.setPriority(Notification.PRIORITY_DEFAULT);
|
||||
if (shareIntent != null) {
|
||||
builder.addAction(android.R.drawable.ic_menu_send, "分享日志", shareIntent);
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
return builder.build();
|
||||
} else {
|
||||
@@ -226,20 +369,75 @@ public class CrashHandleNotifyUtils {
|
||||
* @param content 原始日志
|
||||
* @return 缩略文案
|
||||
*/
|
||||
private static String getShortContent(final String content) {
|
||||
if (content == null || content.isEmpty()) {
|
||||
private static String getShortContent(final String errorLog) {
|
||||
if (errorLog == null || errorLog.isEmpty()) {
|
||||
return "无崩溃日志";
|
||||
}
|
||||
final int maxLength = 80;
|
||||
return content.length() <= maxLength ? content : content.substring(0, maxLength) + "...";
|
||||
final String brief = extractBriefInfo(errorLog);
|
||||
final String firstLine = brief.split("\n")[0];
|
||||
if (firstLine.length() > 80) {
|
||||
return firstLine.substring(0, 80) + "...";
|
||||
}
|
||||
return firstLine;
|
||||
}
|
||||
|
||||
/**
|
||||
* 资源释放预留方法
|
||||
* @param hostContext 宿主上下文
|
||||
* 使用正则表达式从崩溃日志中提取简要信息
|
||||
* @param crashLog 完整崩溃日志
|
||||
* @return 简要崩溃信息
|
||||
*/
|
||||
public static void release(final Context hostContext) {
|
||||
LogUtils.d(TAG, "CrashHandleNotifyUtils 执行资源释放");
|
||||
private static String extractBriefInfo(final String crashLog) {
|
||||
if (crashLog == null || crashLog.isEmpty()) {
|
||||
return "无崩溃日志";
|
||||
}
|
||||
final StringBuilder brief = new StringBuilder();
|
||||
try {
|
||||
java.util.regex.Pattern exceptionPattern = java.util.regex.Pattern.compile(REGEX_EXCEPTION_TYPE);
|
||||
java.util.regex.Matcher exceptionMatcher = exceptionPattern.matcher(crashLog);
|
||||
if (exceptionMatcher.find()) {
|
||||
brief.append(exceptionMatcher.group(1));
|
||||
}
|
||||
java.util.regex.Pattern messagePattern = java.util.regex.Pattern.compile(REGEX_EXCEPTION_MESSAGE);
|
||||
java.util.regex.Matcher messageMatcher = messagePattern.matcher(crashLog);
|
||||
if (messageMatcher.find()) {
|
||||
String message = messageMatcher.group(1).trim();
|
||||
if (message.length() > 100) {
|
||||
message = message.substring(0, 100) + "...";
|
||||
}
|
||||
if (brief.length() > 0) {
|
||||
brief.append(" - ");
|
||||
}
|
||||
brief.append(message);
|
||||
}
|
||||
java.util.regex.Pattern causePattern = java.util.regex.Pattern.compile(REGEX_CAUSE);
|
||||
java.util.regex.Matcher causeMatcher = causePattern.matcher(crashLog);
|
||||
if (causeMatcher.find()) {
|
||||
if (brief.length() > 0) {
|
||||
brief.append("\n");
|
||||
}
|
||||
brief.append("原因: ").append(causeMatcher.group(1));
|
||||
}
|
||||
java.util.regex.Pattern stackPattern = java.util.regex.Pattern.compile(REGEX_STACK_TRACE);
|
||||
java.util.regex.Matcher stackMatcher = stackPattern.matcher(crashLog);
|
||||
int lineCount = 0;
|
||||
while (stackMatcher.find() && lineCount < 3) {
|
||||
if (brief.length() > 0) {
|
||||
brief.append("\n");
|
||||
}
|
||||
brief.append(" at ").append(stackMatcher.group(1)).append(".")
|
||||
.append(stackMatcher.group(2)).append("(")
|
||||
.append(stackMatcher.group(3)).append(":")
|
||||
.append(stackMatcher.group(4)).append(")");
|
||||
lineCount++;
|
||||
}
|
||||
if (brief.length() == 0) {
|
||||
brief.append(crashLog.length() > SUMMARY_MAX_LENGTH ? crashLog.substring(0, SUMMARY_MAX_LENGTH) + "..." : crashLog);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LogUtils.e(TAG, "提取崩溃简要信息失败", e);
|
||||
brief.setLength(0);
|
||||
brief.append(crashLog.length() > SUMMARY_MAX_LENGTH ? crashLog.substring(0, SUMMARY_MAX_LENGTH) + "..." : crashLog);
|
||||
}
|
||||
return brief.toString();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package cc.winboll.studio.libappbase.utils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/**
|
||||
* 分享崩溃日志窗口类
|
||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||
* @CreateTime 2026/05/11 22:30:00
|
||||
*/
|
||||
public class ShareLogActivity extends Activity {
|
||||
|
||||
public static final String TAG = "ShareLogActivity";
|
||||
public static final String EXTRA_CRASH_LOG_FILEPATH = "crash_log_filepath";
|
||||
public static final String EXTRA_CRASH_LOG_SUBJECT = "crash_log_subject";
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
Log.d(TAG, "onCreate 进入方法");
|
||||
|
||||
final Intent intent = getIntent();
|
||||
if (intent == null) {
|
||||
Log.e(TAG, "onCreate intent 为空");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
final String crashLogFilePath = intent.getStringExtra(EXTRA_CRASH_LOG_FILEPATH);
|
||||
if (crashLogFilePath == null || crashLogFilePath.isEmpty()) {
|
||||
Log.e(TAG, "onCreate crashLogFilePath 为空");
|
||||
Toast.makeText(this, "日志文件路径无效", Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
final String subject = intent.getStringExtra(EXTRA_CRASH_LOG_SUBJECT);
|
||||
handleShareCrashLog(crashLogFilePath, subject);
|
||||
}
|
||||
|
||||
private void handleShareCrashLog(final String crashLogFilePath, final String subject) {
|
||||
Log.d(TAG, "handleShareCrashLog crashLogFilePath = " + crashLogFilePath);
|
||||
|
||||
final File crashLogFile = new File(crashLogFilePath);
|
||||
if (!crashLogFile.exists()) {
|
||||
Log.e(TAG, "handleShareCrashLog 文件不存在");
|
||||
Toast.makeText(this, "日志文件不存在", Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(new FileInputStream(crashLogFile), "UTF-8"));
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
sb.append(line).append("\n");
|
||||
}
|
||||
final String logContent = sb.toString();
|
||||
|
||||
final Intent shareIntent = new Intent(Intent.ACTION_SEND);
|
||||
shareIntent.setType("text/plain");
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, logContent);
|
||||
if (subject != null && !subject.isEmpty()) {
|
||||
shareIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
|
||||
} else {
|
||||
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "崩溃日志");
|
||||
}
|
||||
|
||||
startActivity(Intent.createChooser(shareIntent, "分享日志到"));
|
||||
Log.d(TAG, "handleShareCrashLog 分享成功");
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "handleShareCrashLog 异常", e);
|
||||
Toast.makeText(this, "分享失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try { reader.close(); } catch (Exception e) {}
|
||||
}
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package cc.winboll.studio.libappbase.widget;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.text.TextUtils;
|
||||
import android.content.res.TypedArray;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
@@ -153,9 +154,12 @@ public class LogTagSpinner extends Spinner {
|
||||
itemTv.setPadding(mTextPadding, 0, mTextPadding, 0);
|
||||
// 4. 文字对齐(垂直居中+靠左,符合常规 UI 设计)
|
||||
//itemTv.setGravity(View.GRAVITY_CENTER_VERTICAL | View.GRAVITY_START);
|
||||
// 5. 文字颜色(统一深色,可改为项目颜色资源)
|
||||
itemTv.setTextColor(this.mContext.getColor(R.color.white));
|
||||
itemTv.setBackgroundColor(this.mContext.getColor(R.color.btn_gray_normal));
|
||||
// 5. 文字颜色(使用主题属性 ?attr/toolbarTextColor)
|
||||
TypedArray ta = mContext.obtainStyledAttributes(new int[] { R.attr.toolbarTextColor });
|
||||
int toolbarTextColor = ta.getColor(0, mContext.getResources().getColor(R.color.white));
|
||||
ta.recycle();
|
||||
itemTv.setTextColor(toolbarTextColor);
|
||||
itemTv.setBackgroundColor(this.mContext.getResources().getColor(R.color.btn_gray_normal));
|
||||
// 6. 文字溢出处理(最多 2 行,超出省略,避免长标签换行过多)
|
||||
itemTv.setSingleLine(false);
|
||||
itemTv.setMaxLines(2);
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="功能按钮待激活"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/buttonTextColor"
|
||||
android:backgroundTint="?attr/buttonBackgroundColor"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:backgroundTint="?attr/toolbarBackgroundColor"
|
||||
android:padding="14dp"
|
||||
android:enabled="false"/>
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="确认"
|
||||
android:textSize="14sp"
|
||||
android:backgroundTint="?attr/buttonBackgroundColor"
|
||||
android:textColor="?attr/buttonTextColor"/>
|
||||
android:backgroundTint="?attr/toolbarBackgroundColor"
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:id="@+id/viewlogtagCheckBox1"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:id="@+id/viewlogRelativeLayoutToolbar">
|
||||
|
||||
<Button
|
||||
<Button
|
||||
android:layout_width="@dimen/log_button_width"
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:text="Clean"
|
||||
android:textColor="?attr/colorText"
|
||||
android:backgroundTint="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:layout_centerVertical="true"
|
||||
android:id="@+id/viewlogButtonClean"
|
||||
android:layout_marginLeft="5dp"/>
|
||||
@@ -36,7 +36,7 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:id="@+id/viewlogTextView1"
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/colorText"/>
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
<cc.winboll.studio.libappbase.widget.LogTagSpinner
|
||||
android:layout_width="wrap_content"
|
||||
@@ -56,14 +56,14 @@
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:id="@+id/viewlogCheckBoxSelectable"
|
||||
android:padding="@dimen/log_text_padding"
|
||||
android:textColor="?attr/colorText"/>
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
<Button
|
||||
android:layout_width="@dimen/log_button_width"
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:textColor="?attr/colorText"
|
||||
android:backgroundTint="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:text="Copy"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
@@ -89,7 +89,7 @@
|
||||
android:padding="2dp"
|
||||
android:id="@+id/viewlogCheckBox1"
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/colorText"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"/>
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="功能按钮待激活"
|
||||
android:textSize="16sp"
|
||||
android:textColor="?attr/buttonTextColor"
|
||||
android:backgroundTint="?attr/buttonBackgroundColor"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:backgroundTint="?attr/toolbarBackgroundColor"
|
||||
android:padding="14dp"
|
||||
android:enabled="false"/>
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="确认"
|
||||
android:textSize="14sp"
|
||||
android:backgroundTint="?attr/buttonBackgroundColor"
|
||||
android:textColor="?attr/buttonTextColor"/>
|
||||
android:backgroundTint="?attr/toolbarBackgroundColor"
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:id="@+id/viewlogtagCheckBox1"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
27
libappbase/src/main/res/layout/notification_crash.xml
Normal file
27
libappbase/src/main/res/layout/notification_crash.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/notification_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#333333"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/notification_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#666666"
|
||||
android:minHeight="200dp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/notification_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#333333"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/notification_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textSize="13sp"
|
||||
android:textColor="#666666"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -20,8 +20,8 @@
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:text="Clean"
|
||||
android:textColor="?attr/colorText"
|
||||
android:backgroundTint="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:layout_centerVertical="true"
|
||||
android:id="@+id/viewlogButtonClean"
|
||||
android:layout_marginLeft="5dp"/>
|
||||
@@ -36,7 +36,7 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:id="@+id/viewlogTextView1"
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/colorText"/>
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
<cc.winboll.studio.libappbase.widget.LogTagSpinner
|
||||
android:layout_width="wrap_content"
|
||||
@@ -56,14 +56,14 @@
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:id="@+id/viewlogCheckBoxSelectable"
|
||||
android:padding="@dimen/log_text_padding"
|
||||
android:textColor="?attr/colorText"/>
|
||||
android:textColor="?attr/toolbarTextColor"/>
|
||||
|
||||
<Button
|
||||
android:layout_width="@dimen/log_button_width"
|
||||
android:layout_height="@dimen/log_button_height"
|
||||
android:textSize="@dimen/log_text_size"
|
||||
android:textColor="?attr/colorText"
|
||||
android:backgroundTint="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/activityTextColor"
|
||||
android:background="?attr/toolbarBackgroundColor"
|
||||
android:text="Copy"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
@@ -89,7 +89,7 @@
|
||||
android:padding="2dp"
|
||||
android:id="@+id/viewlogCheckBox1"
|
||||
android:background="?attr/colorTittleBackgound"
|
||||
android:textColor="?attr/colorText"
|
||||
android:textColor="?attr/toolbarTextColor"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"/>
|
||||
|
||||
|
||||
@@ -20,11 +20,7 @@
|
||||
<attr name="aboutViewDividerColor" format="color" />
|
||||
</declare-styleable>
|
||||
|
||||
<!-- ButtonStyle 样式属性 -->
|
||||
<declare-styleable name="ButtonStyle">
|
||||
<attr name="buttonBackgroundColor" format="color" />
|
||||
<attr name="buttonTextColor" format="color" />
|
||||
</declare-styleable>
|
||||
|
||||
|
||||
<!-- DialogStyle 样式属性 -->
|
||||
<declare-styleable name="DialogStyle">
|
||||
|
||||
@@ -63,7 +63,9 @@
|
||||
<!-- ============== 主题颜色 ============== -->
|
||||
<color name="mainWindowBackgroundColor">#FF0D1B2A</color>
|
||||
<color name="mainWindowTextColor">#FFE0E0E0</color>
|
||||
<color name="buttonBackgroundColor">#FF1E3A5F</color>
|
||||
<color name="toolbarTextColor">#FFE0E0E0</color>
|
||||
<color name="toolbarBackgroundColor">#FF1E3A5F</color>
|
||||
|
||||
<color name="debugTextColor">#FF00FF00</color>
|
||||
|
||||
</resources>
|
||||
@@ -8,12 +8,12 @@
|
||||
<item name="aboutViewTextColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="aboutViewTitleColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="aboutViewDividerColor">?attr/mainWindowTextColor</item>
|
||||
<item name="buttonBackgroundColor">@color/buttonBackgroundColor</item>
|
||||
<item name="buttonTextColor">?attr/mainWindowDarkTextColor</item>
|
||||
|
||||
|
||||
<item name="dialogBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
|
||||
<item name="dialogTextColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="toolbarBackgroundColor">?attr/buttonBackgroundColor</item>
|
||||
<item name="toolbarTextColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
<item name="textViewBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
|
||||
<item name="textViewTextColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="editTextBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
|
||||
@@ -29,12 +29,14 @@
|
||||
|
||||
<!-- DebugActivityTheme 深色模式样式 -->
|
||||
<style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/mainWindowBackgroundColor</item>
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/buttonBackgroundColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">?attr/debugTextColor</item>
|
||||
<item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
|
||||
</style>
|
||||
|
||||
<!-- DialogStyle 对话框样式 -->
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
<attr name="aboutViewDividerColor" format="color" />
|
||||
</declare-styleable>
|
||||
|
||||
<!-- ButtonStyle 样式属性 -->
|
||||
<declare-styleable name="ButtonStyle">
|
||||
<attr name="buttonBackgroundColor" format="color" />
|
||||
<attr name="buttonTextColor" format="color" />
|
||||
</declare-styleable>
|
||||
|
||||
|
||||
<!-- DialogStyle 样式属性 -->
|
||||
<declare-styleable name="DialogStyle">
|
||||
|
||||
@@ -63,7 +63,9 @@
|
||||
<!-- ============== 主题颜色 ============== -->
|
||||
<color name="mainWindowBackgroundColor">#FFF5F5F5</color>
|
||||
<color name="mainWindowTextColor">#FF000000</color>
|
||||
<color name="buttonBackgroundColor">#FF00B322</color>
|
||||
<color name="toolbarTextColor">#FF000000</color>
|
||||
<color name="toolbarBackgroundColor">#FF00B322</color>
|
||||
|
||||
<color name="debugTextColor">#FF808080</color>
|
||||
|
||||
</resources>
|
||||
@@ -8,12 +8,12 @@
|
||||
<item name="aboutViewTextColor">?attr/mainWindowTextColor</item>
|
||||
<item name="aboutViewTitleColor">?attr/mainWindowTextColor</item>
|
||||
<item name="aboutViewDividerColor">?attr/mainWindowDarkTextColor</item>
|
||||
<item name="buttonBackgroundColor">@color/buttonBackgroundColor</item>
|
||||
<item name="buttonTextColor">?attr/mainWindowTextColor</item>
|
||||
|
||||
|
||||
<item name="dialogBackgroundColor">?attr/mainWindowBackgroundColor</item>
|
||||
<item name="dialogTextColor">?attr/mainWindowTextColor</item>
|
||||
<item name="toolbarBackgroundColor">?attr/buttonBackgroundColor</item>
|
||||
<item name="toolbarTextColor">?attr/mainWindowTextColor</item>
|
||||
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
<item name="textViewBackgroundColor">?attr/mainWindowBackgroundColor</item>
|
||||
<item name="textViewTextColor">?attr/mainWindowTextColor</item>
|
||||
<item name="editTextBackgroundColor">?attr/mainWindowBackgroundColor</item>
|
||||
@@ -29,12 +29,14 @@
|
||||
|
||||
<!-- DebugActivityTheme 普通模式样式 -->
|
||||
<style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/buttonBackgroundColor</item>
|
||||
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorTittle">?attr/mainWindowTextColor</item>
|
||||
<item name="colorTittleBackgound">@color/buttonBackgroundColor</item>
|
||||
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item>
|
||||
<item name="colorText">?attr/debugTextColor</item>
|
||||
<item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item>
|
||||
<item name="debugTextColor">@color/debugTextColor</item>
|
||||
<item name="toolbarTextColor">@color/toolbarTextColor</item>
|
||||
|
||||
</style>
|
||||
|
||||
<!-- DialogStyle 对话框样式 -->
|
||||
|
||||
Reference in New Issue
Block a user