feat: 统一应用文本颜色由主题控制,支持深色/普通模式自适应

主题改造(mymessagemanager):
  - values/styles.xml + values-night/styles.xml:6种风格x2模式共12个主题
    统一设置 android:textColorPrimary / textColorPrimary / android:textColor / colorTextColor
    指向 @color/text_color_primary
  - values/colors.xml:text_color_primary=#FF000000(普通模式黑色)
  - values-night/colors.xml:text_color_primary=#FF00FF00(深色模式绿色)
  - attrs.xml:声明 textColorPrimary 属性解决 AAPT2 编译错误

清除硬编码文本颜色(跨模块):
  - 移除 13 个布局文件中的 android:textColor 属性(libappbase/libaes/winboll/appbase)
  - 移除 3 个 Java 文件中的 setTextColor(Color.BLACK/white/gray) 调用
  - 移除 ComposeSMSActivity / CharsetRefuseEditDialog 中的自定义文本颜色
  - 移除 toast_custom_view.xml / view_tts_back.xml 中的 android:textColor

CompoundButton 文本颜色适配:
  - ConfirmSwitchView:initView 中读取主题 textColorPrimary 的 ColorStateList 并显式设置
  - activity_appsettings.xml:平台 Switch 替换为 ConfirmSwitchView
  - fragment_main.xml:Switch 添加 textColor=?android:attr/textColorPrimary
  - 10个 RadioButton + 4个 CheckBox 添加 textColor=?android:attr/textColorPrimary
This commit is contained in:
2026-05-09 10:02:44 +08:00
parent 99de6c05ba
commit 55c7f7d327
37 changed files with 201 additions and 134 deletions

View File

@@ -334,13 +334,6 @@ public class ComposeSMSActivity extends WinBoLLActivity implements IWinBoLLActiv
mlvContracts.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// 选中时可添加额外反馈(如改变文本颜色,可选)
if (view != null) {
TextView tvName = (TextView) view.findViewById(R.id.listviewcontractsTextView1);
TextView tvPhone = (TextView) view.findViewById(R.id.listviewcontractsTextView2);
if (tvName != null) tvName.setTextColor(getResources().getColor(R.color.white));
if (tvPhone != null) tvPhone.setTextColor(getResources().getColor(R.color.white));
}
}
@Override

View File

@@ -2,7 +2,6 @@ package cc.winboll.studio.mymessagemanager.dialogs;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
@@ -68,7 +67,6 @@ public class CharsetRefuseEditDialog extends Dialog {
TextView titleTv = new TextView(getContext());
titleTv.setText("拒绝显示字符集编辑");
titleTv.setTextSize(18);
titleTv.setTextColor(Color.BLACK);
titleTv.setGravity(Gravity.CENTER);
titleTv.setPadding(0, 0, 0, 20); // 标题与编辑框间距
rootLayout.addView(titleTv);
@@ -100,7 +98,6 @@ public class CharsetRefuseEditDialog extends Dialog {
TextView cancelBtn = new TextView(getContext());
cancelBtn.setText("取消");
cancelBtn.setTextSize(16);
cancelBtn.setTextColor(Color.parseColor("#666666"));
cancelBtn.setPadding(20, 10, 20, 10);
cancelBtn.setOnClickListener(new View.OnClickListener(){
@@ -115,7 +112,6 @@ public class CharsetRefuseEditDialog extends Dialog {
TextView confirmBtn = new TextView(getContext());
confirmBtn.setText("确定");
confirmBtn.setTextSize(16);
confirmBtn.setTextColor(Color.parseColor("#0066CC"));
confirmBtn.setPadding(20, 10, 20, 10);
confirmBtn.setOnClickListener(new View.OnClickListener(){

View File

@@ -5,6 +5,8 @@ package cc.winboll.studio.mymessagemanager.views;
* @Date 2023/07/25 13:37:55
*/
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Switch;
@@ -37,13 +39,13 @@ public class ConfirmSwitchView extends Switch {
initView(context);
}
void initView(Context context) {
mContext = context;
/*TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.SMSView, 0, 0);
colorInbox = a.getColor(R.styleable.SMSView_attrSMSViewInboxColor, 0);
colorSend = a.getColor(R.styleable.SMSView_attrSMSViewSendColor, 0);
a.recycle();*/
}
void initView(Context context) {
mContext = context;
TypedArray a = context.obtainStyledAttributes(new int[]{android.R.attr.textColorPrimary});
ColorStateList csl = a.getColorStateList(0);
if (csl != null) setTextColor(csl);
a.recycle();
}
@Override
public void setOnClickListener(final View.OnClickListener l) {

View File

@@ -45,7 +45,7 @@
android:background="#999999"
android:layout_marginBottom="8dp"/>
<Switch
<cc.winboll.studio.mymessagemanager.views.ConfirmSwitchView
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="回收站短信保护式预览开关:"
@@ -153,7 +153,8 @@
android:text="简洁模式SMSRecycleActivity"
android:id="@+id/activityappsettingsRadioButton1"
android:gravity="center_vertical"
android:textSize="14sp"/>
android:textSize="14sp"
android:textColor="?android:attr/textColorPrimary"/>
<RadioButton
android:layout_width="match_parent"
@@ -161,7 +162,8 @@
android:text="自由模式SMSRecycle2Activity"
android:id="@+id/activityappsettingsRadioButton2"
android:gravity="center_vertical"
android:textSize="14sp"/>
android:textSize="14sp"
android:textColor="?android:attr/textColorPrimary"/>
</RadioGroup>
@@ -228,7 +230,7 @@
android:layout_marginHorizontal="8dp"
android:textSize="13sp"/>
<Switch
<cc.winboll.studio.mymessagemanager.views.ConfirmSwitchView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/activityappsettingsSwitch1"/>

View File

@@ -53,20 +53,23 @@
android:layout_height="wrap_content"
android:text="Accept"
android:id="@+id/activitysmsacceptrulesettingRadioButton1"
android:onClick="onAcceptRuleType"/>
android:onClick="onAcceptRuleType"
android:textColor="?android:attr/textColorPrimary"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Refuse"
android:id="@+id/activitysmsacceptrulesettingRadioButton2"
android:onClick="onRefuseRuleType"/>
android:onClick="onRefuseRuleType"
android:textColor="?android:attr/textColorPrimary"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enable"
android:id="@+id/activitysmsacceptrulesettingCheckBox1"/>
android:id="@+id/activitysmsacceptrulesettingCheckBox1"
android:textColor="?android:attr/textColorPrimary"/>
<Button
android:layout_width="wrap_content"

View File

@@ -34,19 +34,22 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accept"
android:id="@+id/listviewsmsacceptruleRadioButton1"/>
android:id="@+id/listviewsmsacceptruleRadioButton1"
android:textColor="?android:attr/textColorPrimary"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Refuse"
android:id="@+id/listviewsmsacceptruleRadioButton2"/>
android:id="@+id/listviewsmsacceptruleRadioButton2"
android:textColor="?android:attr/textColorPrimary"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listviewsmsacceptruleCheckBox1"
android:text="Enable"/>
android:text="Enable"
android:textColor="?android:attr/textColorPrimary"/>
</LinearLayout>

View File

@@ -36,7 +36,8 @@
android:layout_height="wrap_content"
android:text="Enable"
android:id="@+id/listviewsmsacceptrulesimpleCheckBox1"
android:enabled="false"/>
android:enabled="false"
android:textColor="?android:attr/textColorPrimary"/>
</LinearLayout>

View File

@@ -12,8 +12,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textStyle="bold"
android:textColor="#FF000000"/>
android:textStyle="bold"/>
<LinearLayout
android:orientation="horizontal"
@@ -29,8 +28,7 @@
android:id="@android:id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textColor="#FF000000"/>
android:layout_margin="10dp"/>
</LinearLayout>

View File

@@ -20,8 +20,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textColor="#FF000000"
android:textStyle="bold"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<ImageView
@@ -34,8 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click To Stop TTS Play"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#FF000000"/>
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="text_color_primary">#FF00FF00</color>
<color name="window_background">#FF000000</color>
</resources>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="AESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
<style name="MyDepthAESTheme" parent="DepthAESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
<style name="MySkyAESTheme" parent="SkyAESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
<style name="MyGoldenAESTheme" parent="GoldenAESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
<style name="MyMemorAESTheme" parent="MemorAESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
<style name="MyTaoAESTheme" parent="TaoAESTheme">
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
</style>
</resources>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--<attr name="appTheme" format="reference"/>-->
<attr name="textColorPrimary" format="color" />
<declare-styleable name="SMSView">
<attr name="attrSMSType" format="string"/>
<attr name="attrSMSViewSendColor" format="color" />

View File

@@ -2,6 +2,9 @@
<resources>
<color name="white">#FFFFFFFF</color>
<color name="text_color_primary">#FF000000</color>
<color name="window_background">#FFFFFFFF</color>
<color name="colorSMSSendColor">#FFDCDA3D</color>
<color name="colorSMSInboxColor">#FF3DDC84</color>

View File

@@ -3,6 +3,11 @@
<style name="MyAppTheme" parent="AESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColor</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColor</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColor</item>
@@ -11,6 +16,11 @@
<style name="MyDepthAESTheme" parent="DepthAESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColorDepth</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColorDepth</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColorDepth</item>
@@ -18,6 +28,11 @@
<style name="MySkyAESTheme" parent="SkyAESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColorSky</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColorSky</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColorSky</item>
@@ -25,6 +40,11 @@
<style name="MyGoldenAESTheme" parent="GoldenAESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColorGolden</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColorGolden</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColorGolden</item>
@@ -32,6 +52,11 @@
<style name="MyMemorAESTheme" parent="MemorAESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColorMemor</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColorMemor</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColorMemor</item>
@@ -39,6 +64,11 @@
<style name="MyTaoAESTheme" parent="TaoAESTheme">
<item name="android:textSize">20sp</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorPrimary">@color/text_color_primary</item>
<item name="textColorPrimary">@color/text_color_primary</item>
<item name="android:textColor">@color/text_color_primary</item>
<item name="colorTextColor">@color/text_color_primary</item>
<item name="attrSMSViewSendColor">@color/colorSMSSendColorTao</item>
<item name="attrSMSViewInboxColor">@color/colorSMSInboxColorTao</item>
<item name="attrTTSRuleViewBackgroundColor">@color/colorTTSRuleViewBackgroundColorTao</item>