feat(appbase): 添加桌面图标快捷菜单并修复颜色资源崩溃

1. 桌面图标长按快捷菜单
   - 在MainActivity注册动态快捷方式,长按桌面图标显示
   - 快捷入口邮件设置,点击打开APPExcetionMailSettingsActivity

2. 修复colors.xml移除后XML资源引用崩溃
   - drawable/styles/layout中28处@color/引用替换为内联色值
   - 修复CrashActivity启动时Resources:
     ic_launcher_background → @color/colorPrimary 找不到
This commit is contained in:
BigPickle
2026-07-21 13:26:10 +08:00
parent eebb21d041
commit 033b9aec67
11 changed files with 67 additions and 35 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Tue Jul 21 12:19:17 HKT 2026 #Tue Jul 21 13:23:28 HKT 2026
stageCount=2 stageCount=2
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.21 baseVersion=15.21
publishVersion=15.21.1 publishVersion=15.21.1
buildCount=0 buildCount=6
baseBetaVersion=15.21.2 baseBetaVersion=15.21.2
@@ -1,8 +1,12 @@
package cc.winboll.studio.appbase; package cc.winboll.studio.appbase;
import android.app.Activity; import android.app.Activity;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.view.Menu; import android.view.Menu;
@@ -11,6 +15,7 @@ import android.view.View;
import android.widget.Toolbar; import android.widget.Toolbar;
import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.R;
import cc.winboll.studio.appbase.model.TestBean; import cc.winboll.studio.appbase.model.TestBean;
import cc.winboll.studio.appbase.develop.APPExcetionMailSettingsActivity;
import cc.winboll.studio.libappbase.LogActivity; import cc.winboll.studio.libappbase.LogActivity;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.ToastUtils;
@@ -45,6 +50,7 @@ public class MainActivity extends Activity {
setActionBar(mToolbar); // 将 Toolbar 替代系统默认 ActionBar setActionBar(mToolbar); // 将 Toolbar 替代系统默认 ActionBar
initTestData(); initTestData();
setupShortcuts();
} }
void initTestData() { void initTestData() {
@@ -60,6 +66,32 @@ public class MainActivity extends Activity {
return "/BaseBaen/"+TestBean.class.getName()+".json"; return "/BaseBaen/"+TestBean.class.getName()+".json";
} }
/**
* 注册桌面图标静态快捷方式
* 长按桌面图标后显示快捷菜单,点击可直接打开异常邮件接收设置页面
*/
private void setupShortcuts() {
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
if (shortcutManager == null) {
return;
}
Intent intent = new Intent(this, APPExcetionMailSettingsActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "exception_mail_settings")
.setShortLabel("邮件设置")
.setLongLabel("异常邮件接收设置")
.setIcon(Icon.createWithResource(this, R.drawable.ic_winboll))
.setIntent(intent)
.build();
shortcutManager.setDynamicShortcuts(
java.util.Arrays.asList(shortcut)
);
}
/** /**
* 创建菜单时回调(加载工具栏菜单) * 创建菜单时回调(加载工具栏菜单)
* 初始化 ActionBar 菜单,加载自定义菜单布局 * 初始化 ActionBar 菜单,加载自定义菜单布局
@@ -12,6 +12,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Main2Activity" android:text="Main2Activity"
android:textSize="24sp" android:textSize="24sp"
android:textColor="@color/gray_900"/> android:textColor="#212121"/>
</LinearLayout> </LinearLayout>
+1 -1
View File
@@ -9,6 +9,6 @@
<item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item> <item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item>
<item name="colorText">?attr/debugTextColor</item> <item name="colorText">?attr/debugTextColor</item>
<item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item> <item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
</style> </style>
</resources> </resources>
+1 -1
View File
@@ -9,6 +9,6 @@
<item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item> <item name="colorTittleBackgound">?attr/toolbarBackgroundColor</item>
<item name="colorText">?attr/debugTextColor</item> <item name="colorText">?attr/debugTextColor</item>
<item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item> <item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
</style> </style>
</resources> </resources>
+2 -2
View File
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Tue Jul 21 12:19:05 HKT 2026 #Tue Jul 21 13:23:28 HKT 2026
stageCount=2 stageCount=2
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.21 baseVersion=15.21
publishVersion=15.21.1 publishVersion=15.21.1
buildCount=0 buildCount=6
baseBetaVersion=15.21.2 baseBetaVersion=15.21.2
@@ -10,8 +10,8 @@
<shape android:shape="rectangle" > <shape android:shape="rectangle" >
<gradient <gradient
android:angle="270" android:angle="270"
android:endColor="@color/colorPrimary" android:endColor="#FF00B322"
android:startColor="@color/colorPrimary" /> android:startColor="#FF00B322" />
<corners <corners
android:bottomLeftRadius="6dip" android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip" android:bottomRightRadius="6dip"
@@ -29,8 +29,8 @@
<shape android:shape="rectangle" > <shape android:shape="rectangle" >
<gradient <gradient
android:angle="270" android:angle="270"
android:endColor="@color/colorPrimary" android:endColor="#FF00B322"
android:startColor="@color/colorPrimary" /> android:startColor="#FF00B322" />
<corners <corners
android:bottomLeftRadius="6dip" android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip" android:bottomRightRadius="6dip"
@@ -3,12 +3,12 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 状态 1:按压时(手指按住)→ 深灰色 --> <!-- 状态 1:按压时(手指按住)→ 深灰色 -->
<item android:color="@color/btn_gray_pressed" android:state_pressed="true"/> <item android:color="#757575" android:state_pressed="true"/>
<!-- 状态 2:禁用时(setEnabled(false))→ 浅灰色 --> <!-- 状态 2:禁用时(setEnabled(false))→ 浅灰色 -->
<item android:color="@color/btn_gray_disabled" android:state_enabled="false"/> <item android:color="#E0E0E0" android:state_enabled="false"/>
<!-- 状态 3:默认态(正常可点击)→ 常规灰色 --> <!-- 状态 3:默认态(正常可点击)→ 常规灰色 -->
<item android:color="@color/btn_gray_normal"/> <item android:color="#9E9E9E"/>
</selector> </selector>
@@ -5,7 +5,7 @@
android:viewportWidth="108" android:viewportWidth="108"
android:viewportHeight="108"> android:viewportHeight="108">
<path <path
android:fillColor="@color/colorPrimary" android:fillColor="#FF00B322"
android:pathData="M0,0h108v108h-108z" /> android:pathData="M0,0h108v108h-108z" />
<path <path
android:fillColor="#00000000" android:fillColor="#00000000"
+10 -10
View File
@@ -12,8 +12,8 @@
<item name="dialogBackgroundColor">?attr/mainWindowDarkBackgroundColor</item> <item name="dialogBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
<item name="dialogTextColor">?attr/mainWindowDarkTextColor</item> <item name="dialogTextColor">?attr/mainWindowDarkTextColor</item>
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item> <item name="toolbarBackgroundColor">#FF00B322</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
<item name="textViewBackgroundColor">?attr/mainWindowDarkBackgroundColor</item> <item name="textViewBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
<item name="textViewTextColor">?attr/mainWindowDarkTextColor</item> <item name="textViewTextColor">?attr/mainWindowDarkTextColor</item>
<item name="editTextBackgroundColor">?attr/mainWindowDarkBackgroundColor</item> <item name="editTextBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
@@ -21,21 +21,21 @@
<item name="scrollViewBackgroundColor">?attr/mainWindowDarkBackgroundColor</item> <item name="scrollViewBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
<item name="activityBackgroundColor">?attr/mainWindowDarkBackgroundColor</item> <item name="activityBackgroundColor">?attr/mainWindowDarkBackgroundColor</item>
<item name="activityTextColor">?attr/mainWindowDarkTextColor</item> <item name="activityTextColor">?attr/mainWindowDarkTextColor</item>
<item name="mainWindowBackgroundColor">@color/mainWindowBackgroundColor</item> <item name="mainWindowBackgroundColor">#FFF5F5F5</item>
<item name="mainWindowTextColor">@color/mainWindowTextColor</item> <item name="mainWindowTextColor">#FF000000</item>
<item name="mainWindowDarkBackgroundColor">@color/mainWindowBackgroundColor</item> <item name="mainWindowDarkBackgroundColor">#FFF5F5F5</item>
<item name="mainWindowDarkTextColor">@color/mainWindowTextColor</item> <item name="mainWindowDarkTextColor">#FF000000</item>
</style> </style>
<!-- DebugActivityTheme 深色模式样式 --> <!-- DebugActivityTheme 深色模式样式 -->
<style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar"> <style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar">
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item> <item name="android:statusBarColor">#FF00B322</item>
<item name="colorTittle">?attr/mainWindowDarkTextColor</item> <item name="colorTittle">?attr/mainWindowDarkTextColor</item>
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item> <item name="colorTittleBackgound">#FF00B322</item>
<item name="colorText">?attr/debugTextColor</item> <item name="colorText">?attr/debugTextColor</item>
<item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item> <item name="colorTextBackgound">?attr/mainWindowDarkBackgroundColor</item>
<item name="debugTextColor">@color/debugTextColor</item> <item name="debugTextColor">#FF808080</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
</style> </style>
+10 -10
View File
@@ -12,8 +12,8 @@
<item name="dialogBackgroundColor">?attr/mainWindowBackgroundColor</item> <item name="dialogBackgroundColor">?attr/mainWindowBackgroundColor</item>
<item name="dialogTextColor">?attr/mainWindowTextColor</item> <item name="dialogTextColor">?attr/mainWindowTextColor</item>
<item name="toolbarBackgroundColor">@color/toolbarBackgroundColor</item> <item name="toolbarBackgroundColor">#FF00B322</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
<item name="textViewBackgroundColor">?attr/mainWindowBackgroundColor</item> <item name="textViewBackgroundColor">?attr/mainWindowBackgroundColor</item>
<item name="textViewTextColor">?attr/mainWindowTextColor</item> <item name="textViewTextColor">?attr/mainWindowTextColor</item>
<item name="editTextBackgroundColor">?attr/mainWindowBackgroundColor</item> <item name="editTextBackgroundColor">?attr/mainWindowBackgroundColor</item>
@@ -21,21 +21,21 @@
<item name="scrollViewBackgroundColor">?attr/mainWindowBackgroundColor</item> <item name="scrollViewBackgroundColor">?attr/mainWindowBackgroundColor</item>
<item name="activityBackgroundColor">?attr/mainWindowBackgroundColor</item> <item name="activityBackgroundColor">?attr/mainWindowBackgroundColor</item>
<item name="activityTextColor">?attr/mainWindowTextColor</item> <item name="activityTextColor">?attr/mainWindowTextColor</item>
<item name="mainWindowBackgroundColor">@color/mainWindowBackgroundColor</item> <item name="mainWindowBackgroundColor">#FFF5F5F5</item>
<item name="mainWindowTextColor">@color/mainWindowTextColor</item> <item name="mainWindowTextColor">#FF000000</item>
<item name="mainWindowDarkBackgroundColor">@color/mainWindowBackgroundColor</item> <item name="mainWindowDarkBackgroundColor">#FFF5F5F5</item>
<item name="mainWindowDarkTextColor">@color/mainWindowTextColor</item> <item name="mainWindowDarkTextColor">#FF000000</item>
</style> </style>
<!-- DebugActivityTheme 普通模式样式 --> <!-- DebugActivityTheme 普通模式样式 -->
<style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar"> <style name="DebugActivityTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<item name="android:statusBarColor">@color/toolbarBackgroundColor</item> <item name="android:statusBarColor">#FF00B322</item>
<item name="colorTittle">?attr/mainWindowTextColor</item> <item name="colorTittle">?attr/mainWindowTextColor</item>
<item name="colorTittleBackgound">@color/toolbarBackgroundColor</item> <item name="colorTittleBackgound">#FF00B322</item>
<item name="colorText">?attr/debugTextColor</item> <item name="colorText">?attr/debugTextColor</item>
<item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item> <item name="colorTextBackgound">?attr/mainWindowBackgroundColor</item>
<item name="debugTextColor">@color/debugTextColor</item> <item name="debugTextColor">#FF808080</item>
<item name="toolbarTextColor">@color/toolbarTextColor</item> <item name="toolbarTextColor">#FF000000</item>
</style> </style>