调整应用主题

This commit is contained in:
2025-12-12 20:08:21 +08:00
parent 01e4e8031b
commit c1d2158578
7 changed files with 75 additions and 24 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Fri Dec 12 11:02:22 GMT 2025 #Fri Dec 12 12:07:02 GMT 2025
stageCount=1 stageCount=1
libraryProject= libraryProject=
baseVersion=15.12 baseVersion=15.12
publishVersion=15.12.0 publishVersion=15.12.0
buildCount=35 buildCount=49
baseBetaVersion=15.12.1 baseBetaVersion=15.12.1

View File

@@ -7,33 +7,31 @@ import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.provider.Settings;
import android.telecom.TelecomManager; import android.telecom.TelecomManager;
import android.telephony.PhoneStateListener; import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Toast; import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter; import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
import cc.winboll.studio.contacts.activities.SettingsActivity; import cc.winboll.studio.contacts.activities.SettingsActivity;
import cc.winboll.studio.contacts.activities.WinBollActivity;
import cc.winboll.studio.contacts.dun.Rules; import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.fragments.CallLogFragment; import cc.winboll.studio.contacts.fragments.CallLogFragment;
import cc.winboll.studio.contacts.fragments.ContactsFragment; import cc.winboll.studio.contacts.fragments.ContactsFragment;
@@ -47,6 +45,7 @@ import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libaes.views.ADsBannerView; import cc.winboll.studio.libaes.views.ADsBannerView;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.libappbase.LogView;
import com.google.android.material.tabs.TabLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -55,7 +54,7 @@ import java.util.List;
* @Date 2025/08/30 14:32 * @Date 2025/08/30 14:32
* @Describe Contacts 主窗口(完全适配 API 30 + Java 7 语法) * @Describe Contacts 主窗口(完全适配 API 30 + Java 7 语法)
*/ */
public final class MainActivity extends AppCompatActivity implements IWinBoLLActivity, ViewPager.OnPageChangeListener, View.OnClickListener { public final class MainActivity extends WinBollActivity implements IWinBoLLActivity, ViewPager.OnPageChangeListener, View.OnClickListener {
// ====================== 常量定义区Java 7 硬编码 API 版本,避免高版本依赖) ====================== // ====================== 常量定义区Java 7 硬编码 API 版本,避免高版本依赖) ======================
public static final String TAG = "MainActivity"; public static final String TAG = "MainActivity";
@@ -287,6 +286,15 @@ public final class MainActivity extends AppCompatActivity implements IWinBoLLAct
mToolbar = (Toolbar) findViewById(R.id.activitymainToolbar1); mToolbar = (Toolbar) findViewById(R.id.activitymainToolbar1);
setSupportActionBar(mToolbar); setSupportActionBar(mToolbar);
getSupportActionBar().setSubtitle(TAG); getSupportActionBar().setSubtitle(TAG);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// 显示状态栏
getWindow().getInsetsController().show(WindowInsets.Type.statusBars());
// 设置滑动时状态栏暂显的正常行为
getWindow().getInsetsController().setSystemBarsBehavior(
WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
);
}
// Tab与ViewPager初始化 // Tab与ViewPager初始化
tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout = (TabLayout) findViewById(R.id.tabLayout);

View File

@@ -21,7 +21,7 @@ import cc.winboll.studio.libappbase.LogUtils;
* @Date 2025/03/31 15:15:54 * @Date 2025/03/31 15:15:54
* @Describe 应用介绍窗口 * @Describe 应用介绍窗口
*/ */
public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity { public class AboutActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ====================== // ====================== 常量定义区 ======================
public static final String TAG = "AboutActivity"; public static final String TAG = "AboutActivity";

View File

@@ -42,7 +42,7 @@ import java.util.List;
* @Date 2025/02/21 05:37:42 * @Date 2025/02/21 05:37:42
* @Describe Contacts 主窗口 * @Describe Contacts 主窗口
*/ */
public class SettingsActivity extends AppCompatActivity implements IWinBoLLActivity { public class SettingsActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ====================== // ====================== 常量定义区 ======================
public static final String TAG = "SettingsActivity"; public static final String TAG = "SettingsActivity";

View File

@@ -1,12 +1,13 @@
package cc.winboll.studio.contacts.activities; package cc.winboll.studio.contacts.activities;
import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import cc.winboll.studio.contacts.R; import cc.winboll.studio.contacts.R;
import cc.winboll.studio.contacts.dun.Rules; import cc.winboll.studio.contacts.dun.Rules;
import cc.winboll.studio.contacts.utils.IntUtils; import cc.winboll.studio.contacts.utils.IntUtils;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.libappbase.LogView;
@@ -15,7 +16,7 @@ import cc.winboll.studio.libappbase.LogView;
* @Date 2025/03/02 16:07:04 * @Date 2025/03/02 16:07:04
* @Describe 规则单元测试页面 * @Describe 规则单元测试页面
*/ */
public class UnitTestActivity extends Activity { public class UnitTestActivity extends WinBollActivity implements IWinBoLLActivity {
// ====================== 常量定义区 ====================== // ====================== 常量定义区 ======================
public static final String TAG = "UnitTestActivity"; public static final String TAG = "UnitTestActivity";
@@ -24,6 +25,17 @@ public class UnitTestActivity extends Activity {
private LogView logView; private LogView logView;
private EditText etPhone; private EditText etPhone;
// ====================== 接口实现区 ======================
@Override
public AppCompatActivity getActivity() {
return this;
}
@Override
public String getTag() {
return TAG;
}
// ====================== 生命周期函数区 ====================== // ====================== 生命周期函数区 ======================
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {

View File

@@ -36,12 +36,12 @@ public class WinBollActivity extends AppCompatActivity implements IWinBoLLActivi
// ====================== 生命周期函数区 ====================== // ====================== 生命周期函数区 ======================
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
LogUtils.d(TAG, "onCreate: 基类页面开始创建"); //LogUtils.d(TAG, "onCreate: 基类页面开始创建");
// 优先设置主题,再执行父类初始化 // 优先设置主题,再执行父类初始化
mThemeType = getThemeType(); // mThemeType = getThemeType();
setThemeStyle(); // setThemeStyle();
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
LogUtils.d(TAG, "onCreate: 基类主题设置完成,当前主题类型=" + mThemeType); //LogUtils.d(TAG, "onCreate: 基类主题设置完成,当前主题类型=" + mThemeType);
} }
// ====================== 主题相关函数区 ====================== // ====================== 主题相关函数区 ======================
@@ -73,11 +73,11 @@ public class WinBollActivity extends AppCompatActivity implements IWinBoLLActivi
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
LogUtils.d(TAG, "onOptionsItemSelected: 菜单选项点击itemId=" + item.getItemId()); LogUtils.d(TAG, "onOptionsItemSelected: 菜单选项点击itemId=" + item.getItemId());
// 处理导航栏返回按钮点击事件 // 处理导航栏返回按钮点击事件
if (item.getItemId() == android.R.id.home) { // if (item.getItemId() == android.R.id.home) {
LogUtils.d(TAG, "onOptionsItemSelected: 点击导航返回按钮,关闭当前页面"); // LogUtils.d(TAG, "onOptionsItemSelected: 点击导航返回按钮,关闭当前页面");
finish(); // finish();
return true; // return true;
} // }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
} }

View File

@@ -1,17 +1,48 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="MyAppTheme" parent="AESTheme"> <!-- 方案1无 ActionBar 主题(推荐,适合自定义标题栏) -->
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="GlobalCrashActivityTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorTittle">@color/colorAccent</item>
<item name="colorTittleBackgound">@color/colorPrimary</item>
<item name="colorText">@color/colorAccent</item>
<item name="colorTextBackgound">@color/colorPrimaryDark</item>
</style>
<!-- 方案2带 ActionBar 主题(如需系统默认标题栏,启用此方案) -->
<!--
<style name="MyAppTheme" parent="Theme.MaterialComponents.Light">
<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item> <item name="android:windowContentOverlay">@null</item>
<item name="android:textSizeHeadline">18sp</item>
<item name="android:textSizeBody">16sp</item>
<item name="android:textSizeSubtitle">14sp</item>
<item name="android:textSizeCaption">12sp</item>
</style> </style>
<style name="GlobalCrashActivityTheme" parent="AESTheme"> <style name="GlobalCrashActivityTheme" parent="Theme.MaterialComponents.Light">
<item name="colorTittle">@color/colorAccent</item> <item name="colorTittle">@color/colorAccent</item>
<item name="colorTittleBackgound">@color/colorPrimary</item> <item name="colorTittleBackgound">@color/colorPrimary</item>
<item name="colorText">@color/colorAccent</item> <item name="colorText">@color/colorAccent</item>
<item name="colorTextBackgound">@color/colorPrimaryDark</item> <item name="colorTextBackgound">@color/colorPrimaryDark</item>
</style>
<item name="android:textSizeHeadline">20sp</item>
<item name="android:textSizeBody">14sp</item>
<item name="android:textSizeButton">16sp</item>
</style>
-->
</resources> </resources>